别着急,坐和放宽
需要用户权限,注意先切换为root用户
用户管理
新建用户
useradd 用户名
新建用户操作的背后
/etc/passwd
文件中/etc/shadow
文件中修改用户密码
passwd 用户名
删除用户
userdel 用户名
-r 删除用户同时删除用户home目录,以及同名组
修改用户属性
usermod 用户名
-d 修改用户home目录
-g 修改用户组
修改用户密码属性
chage 用户名
组管理
新建用户组
groupadd 组名
删除用户组
groupdel 组名
如果还有用户以要删除的组作为主要组,无法删除!
切换用户
以其他用户身份执行命令
sudo
- 以其他用户身份执行命令visudo
- 设置需要使用sudo的用户
%group1 ALL=(ALL) NOPASSWD:ALL
主机=(可切换用户) 命令
:
分隔/etc/passwd
用户配置文件
root:x:0:0:root:/root:/bin/bash
/etc/shadow
用户密码相关配置文件
/etc/group
用户组配置文件
root:x:0:
文件类型
-
普通文件字符权限表示法
数字权限表示法
文件权限的表示方法
例如:-rw-r-xr-- 1 lisi group1 mtime filename
r-- 其他用户的权限
创建新⽂件有默认权限,根据 umask 值计算,属主和属组根据当前进程的⽤户来设定
目录权限的表示方法
修改文件、目录权限 - chmod
同时更改子目录和文件的权限
使用选项-R
,例如
更改属主、属组 - chown
实际是通过设置文件访问控制列表实现的,主要利用两个选项-m
和-x
进行设置和取消权限。
其中acl格式要特别注意,具体为类型:具体值:权限
,
其中:
类型:u代表用户,g代表组;
具体值:根据类型填写存在的用户或者组;
权限:采用权限字符表示法或者数字表示法。
取消权限
取消的是setfacl -m
命令设置到文件ACL的权限,用户或组恢复到默认权限。
注意取消权限时,acl格式不需要第三部分
案例1-文件权限管理
案例2 - 文件权限实际意义
useradd zhangsan
id zhangsan
passwd zhangsan
userdel -r zhangsan
useradd lisi
usermod -d /home/w1 lisi
groupadd group1
usermod -g group1 lisi
id lisi
# 创建用户同时也可以指定组
useradd -g group1 wangwu
id wangwu
groupdel group1
# 切换用户
su
# 使用login shell方式切换用户
su - USERNAME
# 实验场景 root, lisi
# root 用户设置了30分钟后关机
# lisi 用户工作尚未完成,需要取消关机操作
(root) shutdown -h 30
(lisi) su - lisi
(lisi) shutdown -c
# 但是lisi当前并无执行shutdown命令的权限
(root) visudo
# 在文件最下方添加如下配置
lisi ALL=/sbin/shutdown, /sbin/useradd
# 如果不需要输入密码,使用下面配置
lisi ALL=NOPASSWD: /sbin/shutdown, /sbin/useradd
# 保存退出
# 现在lisi可以通过sudo执行shutdown命令
(lisi) sudo /sbin/shutdown -c
drwx------ 17 root root 544B 4 8 15:20 Downloads
类型 权限 所属用户和组 文件名
chmod u+x /tmp/testfile
chmod a+x /tmp/testfile
chmod o-r /tmp/testfile
chmod g=rw- /tmp/testfile
chmod u=rwx,g-w /tmp/testfile
chmod 755 /tmp/testfile
chmod -R u+x /tmp/
chown 用户名 /tmp/testfile
chown :组名 /tmp/testfile
chown 用户名:组名 /tmp/testfile
# 指定zhangsan用户对test.txt有读写权限
setfacl -m u:zhangsan:rx test.txt
# 指定music组对test.txt有读权限
setfacl -m g:music:r test.txt
# 取消zhangsan用户对test.txt的ACL权限
setfacl -x u:zhangsan test.txt
# 取消music组对test.txt的ACL权限
setfacl -x g:music test.txt
getfacl test.txt
mkdir /test
ls -ld /test
# 观察默认权限
# 创建三个测试用户
groupadd groupone
useradd -g groupone user1
useradd -g groupone user2
useradd user3
chown user1 /test
ls -ld /test
# 观察权限变化
chown :groupone /test
ls -ld /test
# 观察权限变化
cd /test
touch afile
ls -l afile
chmod u+x afile
# 观察权限变化
chmod g-r afile
# 观察权限变化
chmod o=w afile
# 观察权限变化
chmod afile
# 观察权限变化
chmod 644 afile
# 观察权限变化
# 默认权限 666 - umask
umask
touch bfile
# 观察权限
chown user1:groupone afile
chmod 400 afile
echo 123 > afile # 输出重定向
# 切换到user1
su - user1
cat /test/afile
echo 456 > /test/afile # 有无权限,如何解决?
(user1) touch /test/bfile
(user1) chmod 020 /test/bfile # 用户和属组权限冲突,权限如何?
(user1) echo 123 > /test/bfile
(user1) su - user2
(user2) echo 456 > /test/bfile
chmod 000 /test
su - user1
ls -l # 有无权限?
cd /test # 有无权限?
chmod u=x /test
su - user1
cd /test
# 说明什么?
chmod 000 /test
chmod u=rx /test
su - user1
cd /test
ls -l
# 说明什么?
chmod 000 /test
chmod u=wx /test
su - user1
cd /test
rm afile
ls -l
# 说明什么?
useradd
, passwd
, 和userdel
用于管理用户,而chmod
和chown
用于文件权限管理。此外,介绍了文件权限的表示方法,以及如何设置和取消针对特定用户的权限,强调了ACL在权限管理中的应用。