简述
Linux系统中的3类人
- 属主:创建文件的用户
- 属组:创建文件的用户所在的组
- 其他人:既不是创建文件的用户也不在创建文件的用户所在的组中
Linux系统中3种权限
- r:read——读权限
- w:write——写权限
- x:execute——执行权限
对于目录
- r:表示用户可以查看目录有哪些文件
- w:表示用户可以创建、复制、移动、删除文件
- x:表示用户可以在目录间切换
对于普通文件
- r:表示用户可以查看文件内容
- w:表示用户可以编辑文本
- x:表示用户可以执行文件中的脚本
文件权限
0 -rw-r--r--. 1 root root 0 7月 12 18:31 one
- rw-:表示属主的权限,r表示属主对one文件有读权限,w表示属主对one文件有写权限,-表示属主对one文件无执行权限
- r–:表示属组的权限,表示属组里面的用户对one文件有读权限,无写权限和执行权限
- r–:表示其他人的权限
权限设置
用户表示
- u:user——表示属主
- g:group——表示属组
- o:other——表示其他人
- a:all——表示所有人
操作
- +:增加权限
- -:删除权限
- =:授予权限
chmod
作用:修改文件权限
选项
- -R:同时修改目录及目录下的所有文件
给属主增加执行权限
-rw-r--r--. 1 root root 0 7月 12 18:46 test
[root@Freedom tmp]# chmod u+x test
-rwxr--r--. 1 root root 0 7月 12 18:46 test
去掉属主的执行权限
[root@Freedom tmp]# chmod u-x test
-rw-r--r--. 1 root root 0 7月 12 18:46 test
授予属主读写执行权限
增加权限
-rw-r--r--. 1 root root 0 7月 12 18:46 test
[root@Freedom tmp]# chmod u+x test
-rwxr--r--. 1 root root 0 7月 12 18:46 test
授予权限
[root@Freedom tmp]# chmod u=rwx test
-rwxr--r--. 1 root root 0 7月 12 18:46 test
属主仅拥有读权限
删除权限
[root@Freedom tmp]# chmod u-wx test
-r--r--r--. 1 root root 0 7月 12 18:46 test
授予权限
[root@Freedom tmp]# chmod u=r test
-r--r--r--. 1 root root 0 7月 12 18:46 test
给属组添加和删除执行权限
[root@Freedom tmp]# chmod g+x test
[root@Freedom tmp]# chmod g-x test
授予属组中用户读写执行权限
[root@Freedom tmp]# chmod g=rwx test
给其他人添加执行权限
[root@Freedom tmp]# chmod o+x test
用数字表示权限
- r——4
- w——2
- o——1
属主拥有读写权限、属组拥有读权限、其他人拥有读写执行权限
[root@Freedom tmp]# chmod 647 test
-rw-r--rwx. 1 root root 0 7月 12 18:46 test
给所有用户添加执行权限
[root@Freedom tmp]# chmod +x test
设置权限注意事项
- 要么只读
- 如果有写权限就一定有读权限
-R选项在更改目录权限时使用
[root@Freedom tmp]# chmod -R u+x one
drwxr-xr-x. 2 root root 57 7月 12 19:46 one
-rwxr--r--. 1 root root 0 7月 12 18:46 test
-rwxr--r--. 1 root root 0 7月 12 19:45 test1
-rwxr--r--. 1 root root 0 7月 12 19:45 test2
-rwxr--r--. 1 root root 0 7月 12 19:46 test3
[root@Freedom tmp]# chmod u-x one
drw-r-xr-x. 2 root root 57 7月 12 19:46 one
-rwxr--r--. 1 root root 0 7月 12 18:46 test
-rwxr--r--. 1 root root 0 7月 12 19:45 test1
-rwxr--r--. 1 root root 0 7月 12 19:45 test2
-rwxr--r--. 1 root root 0 7月 12 19:46 test3
- 不加-R只会更改目录的权限,加了-R后目录和目录内的文件权限会同时更改
chown
作用:更改文件的属主
选项
- -R:同时更该目录和目录下的所有文件的属主和属组
改变文件的属主
[root@Freedom one]# chown syf test
-rwxr--r--. 1 syf root 0 7月 12 18:46 test
改变文件的属组
[root@Freedom one]# chown :syf test1
-rwxr--r--. 1 syf root 0 7月 12 18:46 test
改变文件的属主和属组
方法1
[root@Freedom one]# chown syf:syf test2
-rwxr--r--. 1 syf syf 0 7月 12 19:45 test2
方法2
[root@Freedom one]# chown syf.syf test3
-rwxr--r--. 1 syf syf 0 7月 12 19:46 test3
方法3
[root@Freedom one]# chown syf: test4
-rw-r--r--. 1 syf syf 0 7月 13 09:18 test4
方法4
[root@Freedom one]# chown syf. test5
-rw-r--r--. 1 syf syf 0 7月 13 09:18 test5
文件的特殊权限
文件的特殊权限有 SUID、SGID、SBIT、ACL
SUID
set user ID
- 限定:只能设置在二进制可执行程序上面,对目录设置无效
- 功能:程序运行时的权限从执行者变更为程序所有者的权限
- 注意:设置SUID命令时其他人也需要有执行权限
设置UID权限
- chmod u+s cmd
给ls命令添加S
[root@Freedom ~]# chmod u+s /usr/bin/ls
[root@Freedom ~]# ls -ld /usr/bin/ls
-rwsr-xr-x. 1 root root 117680 10月 31 2018 /usr/bin/ls
SGID
set group ID
- 限定:既可以给二进制可执行程序设置,也可以对目录设置
- 功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的所属组
给目录添加SGID权限
[root@Freedom tmp]# chmod g+s one
drw-r-sr-x. 2 root root 109 7月 13 10:40 one
-rw-rw-r--. 1 syf root 0 7月 13 10:46 2
SBIT
对于设置SBIT权限的文件,用户只能删除自己创建的文件,无法删除其他用户的文件。
设置SBIT权限
[root@Freedom /]# chmod o+t /tmp -R
drwxrwxrwt. 21 root root 4.0K 7月 13 10:24 tmp
ACL
对特定的用户实现权限管控
设置用户对文件拥有读写权限
[root@Freedom tmp]# setfacl -m u:syf:rw a
查看ACL权限
[root@Freedom tmp]# getfacl a
# file: a
# owner: root
# group: root
user::rwx
user:syf:rw-
group::r--
mask::rw-
other::r--
清除ACL权限
[root@Freedom tmp]# setfacl -b a
[root@Freedom tmp]# getfacl a
# file: a
# owner: root
# group: root
user::rwx
group::r--
other::r--
sudo
让管理员(root)事先定义好某些特殊命令谁可以执行
sudo配置文件:/etc/sudoers——该文件默认只读,不允许修改
配置sudo文件须使用“#visudo”,打开之后用法和vim一样。
使普通用户拥有创建用户的功能
[root@Freedom ~]# visudo
[root@Freedom ~]# su - syf
上一次登录:六 7月 13 14:48:29 CST 2019pts/0 上
[syf@Freedom ~]$ sudo useradd hi
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] syf 的密码:
[syf@Freedom ~]$ useradd hi
-bash: /usr/sbin/useradd: 权限不够
[syf@Freedom ~]$ id hi
uid=1005(hi) gid=1005(hi) 组=1005(hi)
计算机英语
execute | 执行 |