3.10 用户和权限
sudo命令:以root身份运行的命令
sudo command
# 以root用户查看日期
sudo date
# 一直保持root用户权限, exit退出root
sudo su
su
su -
sudo -i
useradd 添加用户
useradd
: 添加新用户
# 切换到root用户
sudo su
# 添加用户
useradd jack
passwd
: 修改密码
passwd
命令可以修改用户密码passwd
用法类似于useradd
,只要在其后加上需要修改密码的那个用户名即可。# 给jack这个用户设置密码 passwd jack New password: ...
userdel 删除用户
# 切换到root
sudo su
# 删除Jack用户: 只会删除该用户,该用户所在home目录不会删除。
userdel jack
# 如果既要删除用户,也要删除其所在home目录
userdel -r jack
# 或
userdel --remove jack
3.11 群组管理
groupadd 创建群组
# 创建friends群组
groupadd friends
usermod 修改用户账户
-l
: 对用户重命名。/home中的用户home目录名不改变,需要手动修改。-g
: 修改用户所在群组。用户home目录所在群组会一起修改。-G
: 将一个用户添加到多个群组。-aG
: 追加群组
# 将jack这个用户放到friends这个群组中
usermod -g friends jack
grouoadd happy
groupadd funny
# 将friends,happy,funny这三个群组添加给用户jack
usermod -G friends,happy,funny jack
# 查看群组
groups jack
groups 用户名
:查看用户所在群组
groups jack
groupdel 删除群组
groupdel friends
修改文件的所有者和群组
- 只有
root
用户可以修改一个文件的所有者
和群组
- 我们在
/home
目录里创建一个文件,如file.txt
chown 改变文件的所有者和群组
# chown 后接新的所有者的用户名,在接文件名;修改后,群组不变。
chown tom file.txt
# chown 群组:所有者 文件名
chown tom:friends file.txt
chgrp 改变文件的群组
chgrp
: change group
# chgrp 群组名 文件名
chgrp tom file.txt
3.12 文件权限管理
文件权限访问符
d
: dir
表示目录
l
: link
表示链接
r
: read
表示读
w
: write
表示写
x
: execute
表示可执行/运行
如上图所示,权限一般分为四部分d[-或l]
: 表示目录[文件或链接]rwx
: 表示所有者对该文件的权限rwx
: 表示文件所属的群组的其他用户对该文件的权限rwx
: 表示出前两组之外的其他用户对此文件的权限
chmod 修改访问权限
chmod
: change mode
chmod命令不需要root用户权限,只要你是该文件的所有者,就可以修改改文件的访问权限。
要合并这些权限,需要将权限对应的数字相加。
假如我们要分配读,写权限,那么我们就要用4+2=6.
权限 | 数字 |
---|---|
r | 4 |
w | 2 |
x | 1 |
chmod 700 test.sh
权限 | 数字 | 计算 |
---|---|---|
--- | 0 | 0+0+0 |
r-- | 4 | 4+0+0 |
-w- | 2 | 0+1+0 |
--x | 1 | 0+0+1 |
rw- | 6 | 4+2=0 |
-wx | 3 | 0+2+1 |
r-x | 5 | 4+0+1 |
rwx | 7 | 4+2+1 |
用字母来分配权限
u
: 所有者g
: 群组其他用户o
: 其他用户
# 文件file的所有者增加读和运行的权限
chmod u+rx file
# 文件file的群组其他用户增加读的权限
chmod g+r file
# 文件file的其他用户移除读权限
chmod o-r file
# 文件file的群组其他用户增加读权限,其他用户移除读权限
chmod g+r o-r file
# (参数合并)文件file的群组其他用户和其他用户都移除读权限
chmod go-r file
chmod u=rwx,g=r,o=- file
-R 参数:递归的修改访问权限
chmod
配合-R
参数可以滴递归的修改文件的我访问权限
假如只允许jack能读,写,运行/home/jack目录的所有文件,以及所有子目录下的文件
chmod -R 700 /home/jack
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。