1. 权限的基本概述
什么是权限
系统对用户所能执行的功能的限制
为什么要有权限
为了保护每个用户的自己的工作环境和隐私
权限跟用户有什么关系
属主 User u
属组 Group g
其他人 others o
a 所有
对应了三个基础权限
r 可读 readable 4
w 可写 writable 2
x 可执行 executable 1
- 没有权限 权限位占位符 0
[root@qls ~]# ls -l
total 61152
-rw-r--r--. 1 root root 39 Jul 17 19:16 123.txt
-rw-r--r--. 1 root root 9272936 Jul 17 12:01 access.log
- rw- r-- r-- 644
文件的类型 属主 属组 匿名
每三个为一组
第一个对应 可读 r
第二个对应 可写 w
第三个对应 可执行 x
没有此权限则用-代替
为什么要设置权限,如何设置权限
设置某个用户对于系统的某个资源拥有什么样管理权力
chmod #设置权限的命令
选项:
-R #针对目录设置权限 赋予目录及目录以下所有文件的权限
2. 权限的设置案例
#添加权限
- #收回某个权限
= #覆盖之前的权限
#添加权限
[root@qls ~]# ll
total 4
-rw-r--r-- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]# chmod u+x hosts
[root@qls ~]# ll
total 4
-rwxr--r-- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]# chmod g+wx hosts
[root@qls ~]# ll
total 4
-rwxrwxr-- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]# chmod o+w hosts
[root@qls ~]# ll
total 4
-rwxrwxrw- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]# chmod a+x hosts
[root@qls ~]# ll
total 4
-rwxrwxrwx 1 root root 158 Jul 23 09:06 hosts
#收回权限
#a可以省略
[root@qls ~]# chmod -x hosts
[root@qls ~]# ll
total 4
-rw-rw-rw- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]# chmod u-w hosts
[root@qls ~]# ll
total 4
-r--rw-rw- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]# chmod g-w,o-rw hosts
[root@qls ~]# ll
total 4
-r--r----- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]#
#覆盖之前的所有权限
[root@qls ~]# chmod a=rw hosts
[root@qls ~]# ll
total 4
-rw-rw-rw- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]# chmod o=- hosts
[root@qls ~]# ll
total 4
-rw-rw---- 1 root root 158 Jul 23 09:06 hosts
根据数字进行修改 会把原来的权限全部覆盖掉
-R #给目录的权限及目录以下的所有文件或者子目录都设置统一权限
[root@qls ~]# chmod 644 hosts
[root@qls ~]# ll
total 4
-rw-r--r-- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]# mkdir data
[root@qls ~]# ll
total 4
drwxr-xr-x 2 root root 6 Jul 23 09:35 data
-rw-r--r-- 1 root root 158 Jul 23 09:06 hosts
[root@qls ~]# cp /etc/hosts data/
[root@qls ~]# ll data/
total 4
-rw-r--r-- 1 root root 158 Jul 23 09:35 hosts
[root@qls ~]# ll -d data/
drwxr-xr-x 2 root root 19 Jul 23 09:35 data/
[root@qls ~]# chmod 700 data/
[root@qls ~]# ll -d data/
drwx------ 2 root root 19 Jul 23 09:35 data/
[root@qls ~]# ll data/
total 4
-rw-r--r-- 1 root root 158 Jul 23 09:35 hosts
[root@qls ~]# chmod -R 755 data/
[root@qls ~]# ll -d data/
drwxr-xr-x 2 root root 19 Jul 23 09:35 data/
[root@qls ~]# ll data/
total 4
-rwxr-xr-x 1 root root 158 Jul 23 09:35 hosts
#权限设置案例
/opt/test 针对于此目录
属主为root 属组为dev dev01 dev02
属主拥有所有权限
属组拥有可读 可写权限
其他人没有任何权限
[root@qls ~]# mkdir /opt/test
[root@qls ~]# ll /opt/
total 0
drwxr-xr-x 2 root root 6 Jul 23 09:40 test
[root@qls ~]# groupadd dev
[root@qls ~]# chgrp dev /opt/test/
[root@qls ~]# ll /opt/
total 0
drwxr-xr-x 2 root dev 6 Jul 23 09:40 test
[root@qls ~]# chmod 760 /opt/test/
[root@qls ~]# ll /opt/
total 0
drwxrw---- 2 root dev 6 Jul 23 09:40 test
3. 权限对文件或者目录的影响
cat head tail 浏览目录及子目录的列表 ls tree
w 可以新增,修改文件内容的权利 vim echo > >> 可以新建或者删除,移动目录中的文件的权利
x 可以执行文件的权利 脚本 可以进入目录 cd
4. 文件权限设置案例
[root@qls ~]# echo "hostname" >> /opt/file.txt
[root@qls ~]# ll /opt/
total 4
-rw-r--r-- 1 root root 9 Jul 23 09:57 file.txt
[root@qls ~]# useradd qls01
[root@qls ~]#
[root@qls ~]# echo "1" | passwd --stdin qls01
Changing password for user qls01.
passwd: all authentication tokens updated successfully.
[root@qls ~]# su - qls01
Last login: Thu Jul 23 09:59:14 CST 2020 on pts/0
[qls01@qls ~]$ ll /opt/
total 4
-rw-r--r-- 1 root root 9 Jul 23 09:57 file.txt
drwxrw---- 2 root dev 6 Jul 23 09:40 test
[qls01@qls ~]$ cat /opt/file.txt
hostname
[qls01@qls ~]$ head /opt/file.txt
hostname
[qls01@qls ~]$ tail /opt/file.txt
hostname
[qls01@qls ~]$ vim /opt/file.txt
[qls01@qls ~]$ echo "123" >> /opt/file.txt
-bash: /opt/file.txt: Permission denied
[qls01@qls ~]$ /opt/file.txt
-bash: /opt/file.txt: Permission denied
#文件只有r权限时,是可以正常查看文件内容的,不可以修改或者执行文件的权限
w权限
[root@qls ~]# chmod o=w /opt/file.txt
[root@qls ~]# ll /opt/file.txt
-rw-r---w- 1 root root 9 Jul 23 09:57 /opt/file.txt
[root@qls ~]# su - qls01
Last login: Thu Jul 23 10:00:14 CST 2020 on pts/0
[qls01@qls ~]$ cat /opt/file.txt
cat: /opt/file.txt: Permission denied
[qls01@qls ~]$ vim /opt/file.txt
[qls01@qls ~]$ cat /opt/file.txt
cat: /opt/file.txt: Permission denied
[qls01@qls ~]$ /opt/file.txt
-bash: /opt/file.txt: Permission denied
[root@qls ~]# cat /opt/file.txt
uirethruie
[qls01@qls ~]$ echo "test" >> /opt/file.txt
[qls01@qls ~]$ echo "test" > /opt/file.txt
[root@qls ~]# cat /opt/file.txt
uirethruie
test
[root@qls ~]# cat /opt/file.txt
test
#只有w权限时, 无法查看和执行文件的权限 使用vim编辑文件文件时,无法查看里面的内容,可以进行编辑,但是需要强制保存,但是保存之后,原来的内容被覆盖了 可以使用echo命令进行追加或者重定向内容进去
x权限
[root@qls ~]# chmod o=x /opt/file.txt
[root@qls ~]# ll /opt/file.txt
-rw-r----x 1 root root 5 Jul 23 10:09 /opt/file.txt
[root@qls ~]# su - qls01
Last login: Thu Jul 23 10:08:38 CST 2020 on pts/0
[qls01@qls ~]$ ll /opt/file.txt
-rw-r----x 1 root root 5 Jul 23 10:09 /opt/file.txt
[qls01@qls ~]$ cat /opt/file.txt
cat: /opt/file.txt: Permission denied
[qls01@qls ~]$ echo "123" >> /opt/file.txt
-bash: /opt/file.txt: Permission denied
[qls01@qls ~]$ /opt/file.txt
bash: /opt/file.txt: Permission denied
#文件只有x权限 什么都干不了
rw权限
[root@qls ~]# chmod o=rw /opt/file.txt
[root@qls ~]# ll /opt/file.txt
-rw-r--rw- 1 root root 5 Jul 23 10:09 /opt/file.txt
[root@qls ~]# su - qls01
Last login: Thu Jul 23 10:11:27 CST 2020 on pts/0
[qls01@qls ~]$ cat /opt/file.txt
test
[qls01@qls ~]$ echo "hostname" > /opt/file.txt
[qls01@qls ~]$ vim /opt/file.txt
[qls01@qls ~]$ cat /opt/file.txt
hostname
pwd
[qls01@qls ~]$ /opt/file.txt
-bash: /opt/file.txt: Permission denied
#经过测试,文件w权限需要r权限的配合 才能正常的修改文件内容
rx权限
[root@qls ~]# chmod o=rx /opt/file.txt
[root@qls ~]# ll /opt/file.txt
-rw-r--r-x 1 root root 13 Jul 23 10:14 /opt/file.txt
[root@qls ~]# su - qls01
Last login: Thu Jul 23 10:14:16 CST 2020 on pts/0
[qls01@qls ~]$ cat /opt/file.txt
hostname
pwd
[qls01@qls ~]$ echo "123" > /opt/file.txt
-bash: /opt/file.txt: Permission denied
[qls01@qls ~]$ vim /opt/file.txt
[qls01@qls ~]$ /opt/file.txt
qls
/home/qls01
#经过测试,文件的x权限需要r权限的配合
wx权限 没有什么用处
rwx权限 权限太大
Permission denied #权限不足 没有权限
5. 目录权限设置案例
权限对目录的影响
r权限 具有可以浏览目录及其子目录下的列表 属性信息
[root@qls ~]# chmod o=r /opt/test/
[root@qls ~]# ll /opt/
total 4
-rw-r--r-x 1 root root 13 Jul 23 10:14 file.txt
drwxrw-r-- 2 root root 6 Jul 23 09:40 test
[root@qls ~]# touch /opt/test/data.{txt,log,sh}
[root@qls ~]# mkdir /opt/test/oldboy{01..03}
[root@qls ~]# ll /opt/test/
total 0
-rw-r--r-- 1 root root 0 Jul 23 10:51 data.log
-rw-r--r-- 1 root root 0 Jul 23 10:51 data.sh
-rw-r--r-- 1 root root 0 Jul 23 10:51 data.txt
drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy01
drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy02
drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy03
[root@qls ~]# su - qls01
Last login: Thu Jul 23 10:51:09 CST 2020 on pts/0
[qls01@qls ~]$ ls /opt/test/
ls: cannot access /opt/test/data.txt: Permission denied
ls: cannot access /opt/test/data.log: Permission denied
ls: cannot access /opt/test/data.sh: Permission denied
ls: cannot access /opt/test/oldboy01: Permission denied
ls: cannot access /opt/test/oldboy02: Permission denied
ls: cannot access /opt/test/oldboy03: Permission denied
data.log data.sh data.txt oldboy01 oldboy02 oldboy03
[qls01@qls ~]$ ls -l /opt/test/
ls: cannot access /opt/test/data.txt: Permission denied
ls: cannot access /opt/test/data.log: Permission denied
ls: cannot access /opt/test/data.sh: Permission denied
ls: cannot access /opt/test/oldboy01: Permission denied
ls: cannot access /opt/test/oldboy02: Permission denied
ls: cannot access /opt/test/oldboy03: Permission denied
total 0
-????????? ? ? ? ? ? data.log
-????????? ? ? ? ? ? data.sh
-????????? ? ? ? ? ? data.txt
d????????? ? ? ? ? ? oldboy01
d????????? ? ? ? ? ? oldboy02
d????????? ? ? ? ? ? oldboy03
[qls01@qls ~]$ rm -f /opt/test/data.log
rm: cannot remove ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ touch /opt/test/data.conf
touch: cannot touch ‘/opt/test/data.conf’: Permission denied
[qls01@qls ~]$ mv /opt/test/data.log /tmp
mv: cannot stat ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ cd /opt/test/
-bash: cd: /opt/test/: Permission denied
[qls01@qls ~]$ tree /opt/test/ #没有任何统计
/opt/test/
0 directories, 0 files
#目录只有r权限,使用ls -l命令查看目录下的列表,会出现一堆的权限不足,但是文件名和文件类型显示出来了,其他的属性信息都是问号 不能对此目录下的文件进行新建或者删除及其移动的操作 也不能切换到这个目录
w权限
[root@qls ~]# chmod o=w /opt/test/
[root@qls ~]# ll /opt/
total 4
-rw-r--r-x 1 root root 13 Jul 23 10:14 file.txt
drwxrw--w- 5 root root 101 Jul 23 10:51 test
[root@qls ~]# su - qls01
Last login: Thu Jul 23 10:52:22 CST 2020 on pts/0
[qls01@qls ~]$ ls /opt/test/
ls: cannot open directory /opt/test/: Permission denied
[qls01@qls ~]$ ls -l /opt/test/
ls: cannot open directory /opt/test/: Permission denied
[qls01@qls ~]$ cd /opt/test/
-bash: cd: /opt/test/: Permission denied
[qls01@qls ~]$ touch /opt/test/123.txt
touch: cannot touch ‘/opt/test/123.txt’: Permission denied
[qls01@qls ~]$ rm -f /opt/test/data.log
rm: cannot remove ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ mv /opt/test/data.log /tmp/
mv: cannot stat ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ cp /opt/test/data.log /tmp
cp: cannot stat ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ cp /opt/test/data.log /tmp
cp: cannot stat ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ mv /opt/test/data.log /tmp/
mv: cannot stat ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ rm -f /opt/test/data.log
rm: cannot remove ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ ll -d /opt/
drwxrwxrwx 3 root root 34 Jul 23 09:57 /opt/
#只有w权限时,目录什么都做不了
x权限 进入目录
[root@qls ~]# su - qls01
Last login: Thu Jul 23 10:57:51 CST 2020 on pts/0
[qls01@qls ~]$ cd /opt/test/
[qls01@qls test]$ ls
ls: cannot open directory .: Permission denied
[qls01@qls test]$ ls -l
ls: cannot open directory .: Permission denied
[qls01@qls test]$ rm -f data.log
rm: cannot remove ‘data.log’: Permission denied
[qls01@qls test]$ touch data.conf
touch: cannot touch ‘data.conf’: Permission denied
[qls01@qls test]$ mv data.log /tmp/
mv: cannot move ‘data.log’ to ‘/tmp/data.log’: Permission denied
[qls01@qls test]$ cp data.log /tmp/
[qls01@qls test]$ ll /tmp/
total 4
drwxr-xr-x. 2 root root 51 Jul 17 17:59 data1
drwxr-xr-x. 2 root root 51 Jul 17 17:59 data2
drwxr-xr-x. 2 root root 51 Jul 17 17:59 data3
-rw-r--r-- 1 qls01 qls01 0 Jul 23 11:03 data.log
#目录只有x权限时,可以切换到目录中,无法查看目录列表信息 也无法进行删除、新建、移动等操作 可以进行复制操作
rw权限
[root@qls ~]# chmod o=rw /opt/test/
[root@qls ~]# ll /opt/
total 4
-rw-r--r-x 1 root root 13 Jul 23 10:14 file.txt
drwxrw-rw- 5 root root 101 Jul 23 10:51 test
[root@qls ~]# su - qls01
Last login: Thu Jul 23 11:06:21 CST 2020 on pts/0
[qls01@qls ~]$ cd /opt/test/
-bash: cd: /opt/test/: Permission denied
[qls01@qls ~]$ ls /opt/test/
ls: cannot access /opt/test/data.txt: Permission denied
ls: cannot access /opt/test/data.log: Permission denied
ls: cannot access /opt/test/data.sh: Permission denied
ls: cannot access /opt/test/oldboy01: Permission denied
ls: cannot access /opt/test/oldboy02: Permission denied
ls: cannot access /opt/test/oldboy03: Permission denied
data.log data.sh data.txt oldboy01 oldboy02 oldboy03
[qls01@qls ~]$ ls -l /opt/test/
ls: cannot access /opt/test/data.txt: Permission denied
ls: cannot access /opt/test/data.log: Permission denied
ls: cannot access /opt/test/data.sh: Permission denied
ls: cannot access /opt/test/oldboy01: Permission denied
ls: cannot access /opt/test/oldboy02: Permission denied
ls: cannot access /opt/test/oldboy03: Permission denied
total 0
-????????? ? ? ? ? ? data.log
-????????? ? ? ? ? ? data.sh
-????????? ? ? ? ? ? data.txt
d????????? ? ? ? ? ? oldboy01
d????????? ? ? ? ? ? oldboy02
d????????? ? ? ? ? ? oldboy03
[qls01@qls ~]$ touch /opt/test/data.conf
touch: cannot touch ‘/opt/test/data.conf’: Permission denied
[qls01@qls ~]$ rm -f /opt/test/data.log
rm: cannot remove ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ mv /opt/test/data.log /tmp/
mv: cannot stat ‘/opt/test/data.log’: Permission denied
[qls01@qls ~]$ cp /opt/test/data.txt /tmp/
cp: cannot stat ‘/opt/test/data.txt’: Permission denied
#rw权限 跟只有r权限作用是一样的
rx权限
[root@qls ~]# chmod o=rx /opt/test/
[root@qls ~]# ll /opt/
total 4
-rw-r--r-x 1 root root 13 Jul 23 10:14 file.txt
drwxrw-r-x 5 root root 101 Jul 23 10:51 test
[root@qls ~]# su - qls01
Last login: Thu Jul 23 11:10:14 CST 2020 on pts/0
[qls01@qls ~]$ cd /opt/test/
[qls01@qls test]$ ls
data.log data.sh data.txt oldboy01 oldboy02 oldboy03
[qls01@qls test]$ ls -l
total 0
-rw-r--r-- 1 root root 0 Jul 23 10:51 data.log
-rw-r--r-- 1 root root 0 Jul 23 10:51 data.sh
-rw-r--r-- 1 root root 0 Jul 23 10:51 data.txt
drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy01
drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy02
drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy03
[qls01@qls test]$ touch data.conf
touch: cannot touch ‘data.conf’: Permission denied
[qls01@qls test]$ rm -f data.log
rm: cannot remove ‘data.log’: Permission denied
[qls01@qls test]$ mv data.txt /tmp/
mv: cannot move ‘data.txt’ to ‘/tmp/data.txt’: Permission denied
[qls01@qls test]$ cp data.txt /tmp/
[qls01@qls test]$ ll /tmp/
total 4
drwxr-xr-x. 2 root root 51 Jul 17 17:59 data1
drwxr-xr-x. 2 root root 51 Jul 17 17:59 data2
drwxr-xr-x. 2 root root 51 Jul 17 17:59 data3
-rw-r--r-- 1 qls01 qls01 0 Jul 23 11:03 data.log
-rw-r--r-- 1 qls01 qls01 0 Jul 23 11:13 data.txt
#目录拥有rx权限时,可以正常的查看目录列表信息,属性信息,也可以进入目录,可以复制文件到其他目录,但是不能执行新建、删除、移动等操作
wx权限
[root@qls ~]# chmod o=wx /opt/test/
[root@qls ~]# ll /opt/
total 4
-rw-r--r-x 1 root root 13 Jul 23 10:14 file.txt
drwxrw--wx 5 root root 101 Jul 23 10:51 test
[root@qls ~]# su - qls01
Last login: Thu Jul 23 11:12:31 CST 2020 on pts/0
[qls01@qls ~]$ cd /opt/test/
[qls01@qls test]$ ls
ls: cannot open directory .: Permission denied
[qls01@qls test]$ touch 123.txt
[qls01@qls test]$ ls
ls: cannot open directory .: Permission denied
[qls01@qls test]$ rm -f data.log
[qls01@qls test]$ mv data.txt /tmp/
[qls01@qls test]$ ls
ls: cannot open directory .: Permission denied
#目录拥有wx权限时,可以进入目录,可以新建,删除、移动文件的权利 但是查看不了目录的列表及属性信息
6. 属主属组设置
chown #设置属主属组 只有root管理员才可以进行设置
选项:
-R #递归设置 设置目录及其目录以下的所有文件
[root@qls ~]# ll /opt/
total 4
-rw-r--r-x 1 root root 13 Jul 23 10:14 file.txt
drwxrw--wx 5 root root 84 Jul 23 11:17 test
[root@qls ~]# chown qls01 /opt/file.txt #默认设置的是属主
[root@qls ~]# ll /opt/
total 4
-rw-r--r-x 1 qls01 root 13 Jul 23 10:14 file.txt
drwxrw--wx 5 root root 84 Jul 23 11:17 test
[root@qls ~]# chown .qls01 /opt/file.txt #设置属组
[root@qls ~]# ll /opt/
total 4
-rw-r--r-x 1 qls01 qls01 13 Jul 23 10:14 file.txt
drwxrw--wx 5 root root 84 Jul 23 11:17 test
[root@qls ~]# chown root.root /opt/file.txt #同时设置属主属组
[root@qls ~]# ll /opt/
total 4
-rw-r--r-x 1 root root 13 Jul 23 10:14 file.txt
drwxrw--wx 5 root root 84 Jul 23 11:17 test
[root@qls ~]# chown qls01.qls01 /opt/test/ #只设置目录
[root@qls ~]# ll -d /opt/test/
drwxrw--wx 5 qls01 qls01 84 Jul 23 11:17 /opt/test/
[root@qls ~]# ll /opt/test/
total 0
-rw-rw-r-- 1 qls01 qls01 0 Jul 23 11:17 123.txt
-rw-r--r-- 1 root root 0 Jul 23 10:51 data.sh
drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy01
drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy02
drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy03
[root@qls ~]# chown -R qls01.qls01 /opt/test/ #递归设置
[root@qls ~]# ll /opt/test/
total 0
-rw-rw-r-- 1 qls01 qls01 0 Jul 23 11:17 123.txt
-rw-r--r-- 1 qls01 qls01 0 Jul 23 10:51 data.sh
drwxr-xr-x 2 qls01 qls01 6 Jul 23 10:51 oldboy01
drwxr-xr-x 2 qls01 qls01 6 Jul 23 10:51 oldboy02
drwxr-xr-x 2 qls01 qls01 6 Jul 23 10:51 oldboy03
chgrp #设置属组
[root@qls ~]# chgrp root /opt/test/
[root@qls ~]# ll -d /opt/test/
7. Umask控制权限
[root@qls ~]# ll
total 4
drwxr-xr-x 2 root root 6 Jul 23 11:21 123
-rw-r--r-- 1 root root 0 Jul 23 11:21 123.txt
系统中为什么新创建的目录的权限为755,文件的权限为644
都是由系统的控制权限所控制的
umask #控制权限的命令
[root@qls ~]# umask
0022
系统中是如何计算权限
系统新创建的目录的权限由最大权限777减去umask控制权限022得到的就是755,所以说新创建的目录的权限为755,新创建文件的权限由文件最大权限666减去umask控制权限022,得到644权限,所以说新创建的文件的权限为644,当文件权限遇到奇数时,在奇数为加一
[root@qls ~]# umask
0022
[root@qls ~]# umask 033
[root@qls ~]# umask
0033
[root@qls ~]# mkdir oldboy
[root@qls ~]# ll
total 4
drwxr-xr-x 2 root root 6 Jul 23 11:21 123
-rw-r--r-- 1 root root 0 Jul 23 11:21 123.txt
drwxr--r-- 2 root root 6 Jul 23 12:02 oldboy
[root@qls ~]# touch oldboy.txt
[root@qls ~]# ll
8. 用户练习题
1.删除用户基本组shanghai03。发现无法正常删除,怎样才能将其删除掉,不能删除用户。
这个组是某个用户的基本组,所以删除不了 跟这里面的用户换个组再删除
2.打开多个xshell窗口连接登录同一虚拟机,使用不同的用户登录多次,分别使用w和who命令显示当前系统上的所有已经登录的用户,取出用户名这一列,注意:同一个用户登录多次,则只显示一次即可。
[root@qls ~]# w
12:10:05 up 3 days, 25 min, 5 users, load average: 0.04, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 Wed09 50:37 0.30s 0.00s -bash
root pts/1 10.0.0.1 12:03 5.00s 0.00s 0.00s w
root pts/2 10.0.0.1 12:09 34.00s 0.00s 0.00s -bash
root pts/3 10.0.0.1 12:09 32.00s 0.00s 0.00s -bash
qls01 pts/4 10.0.0.1 12:10 4.00s 0.00s 0.00s -bash
[root@qls ~]# w | awk 'NR>2'
root pts/0 10.0.0.1 Wed09 50:49 0.30s 0.00s -bash
root pts/1 10.0.0.1 12:03 1.00s 0.00s 0.00s w
root pts/2 10.0.0.1 12:09 46.00s 0.00s 0.00s -bash
root pts/3 10.0.0.1 12:09 44.00s 0.00s 0.00s -bash
qls01 pts/4 10.0.0.1 12:10 16.00s 0.00s 0.00s -bash
[root@qls ~]# w | awk 'NR>2{print $1}'
root
root
root
root
qls01
[root@qls ~]# w | awk 'NR>2{print $1}' | sort
qls01
root
root
root
root
[root@qls ~]# w | awk 'NR>2{print $1}' | sort |uniq -c
1 qls01
4 root
[root@qls ~]#
3.创建用户olddir,其ID号为1005,基本组为old
groupadd old
useradd -u1005 -g old olddir
4.显示当前登录的用户的UID号,你有几种方法实现?
id
grep 'user' /etc/passwd
echo $UID
5.对于用户来说,组有几种类别?有什么区别?
基本组 每个用户只能有一个基本组
附加组 用户可以拥有多个附加组
6./etc/group文件以:为分隔符,分为四列,解释其每列的含义?
7./etc/gshadow文件以:为分隔符,分为四列,解释其每列的含义?
8.如果想从root用户切换到普通用户,使用什么命令?
su - username
9.切换到普通用户后,想返回到root用户,怎么做?有几种方法,有什么区别?
su -
Ctrl + D
logout
exit
10.Shell主要分为哪几类?
交互式
非交互式
登录式
非登录式
11.Bash Shell的个人及全局配置文件有哪些?哪个优先级别高?
个人高
12.登录式Shell配置文件执行顺序?
13.非登录式shell配置文件执行顺序?
14.在root用户下,以普通用户身份执行"pwd"命令。
[root@qls ~]# su - qls01 -c "pwd"
/home/qls01
15.什么是sudo?
用来提权 给普通用户提权
16.可以根据哪个文件对sudo提权?
/etc/sudoers
17.登录到普通用户,查看/etc/shadow文件的内容,发现查看不了,怎么办?
提权
切换到root用户查看
设置权限
18.登录到普通用户,删除/opt目录,若无法删除,该怎么解决?
提权
切换到root用户删除
设置权限
要删除一个目录,要看上一级目录的权限
要将一个文件移动或者拷贝到另一个目录时,也需要查看另一个目录的权限
19.登录到普通用户,使用sudo命令时,不想输出密码,怎么解决?
NOPASSWD:
20.怎样查看普通用户的sudo权限?
sudo -l
21.配置好了sudo授权,怎么检查语法是否正确?
visudo -c
22.禁止root用户远程登录,怎么实现?
[root@qls ~]# grep 'RootLogin' /etc/ssh/sshd_config
PermitRootLogin no
23.修改远程连接端口号为2222,然后进行登录?
[root@qls ~]# grep 'Port' /etc/ssh/sshd_config
#Port 22
#GatewayPorts no
[root@qls ~]# sed -i '/^#Port/s#.*#Port 2222#g' /etc/ssh/sshd_config
[root@qls ~]# grep 'Port' /etc/ssh/sshd_config
Port 2222
#GatewayPorts no
[root@qls ~]#
[root@qls ~]# systemctl restart sshd
[root@qls ~]# getenforce
Disabled
[root@qls ~]# setenforce 0
setenforce: SELinux is disabled
[root@qls ~]# ll /etc/sysconfig/selinux
-rw-r--r--. 1 root root 543 Jul 15 20:28 /etc/sysconfig/selinux
[root@qls ~]# systemctl stop firewalld
ssh qls01@10.0.0.100 2222
24.把对sshd的设置修改成原来的设置。
[root@qls ~]# sed -i '/^Port/s#.*##Port 22#g' /etc/ssh/sshd_config
[root@qls ~]# !grep
grep 'Port' /etc/ssh/sshd_config
#Port 22
#GatewayPorts no
[root@qls ~]# systemctl restart sshd
25.说出下面几个特殊符号的含义 * > >> # .. . ^ $ `` !
* #所有
> #标准输出重定向 会清空文件的内容之后再将你的内容重定向进去
>> #标准输出追加重定向 不会清空文件的内容,将文件内容追加到文件的底部
# #注释 管理员命令行提示符
.. #当前目录的上一级目录
. #当前目录
^ #逻辑概念 开头
$ #结尾 最后一行
`` #优先执行反引号里面的命令,把命令的执行结果交给外面的命令 里面必须是命令 跟 $()
! #非 取反
9. 用户权限练习题
1.用户基础权限为9位,每三位为一组,每组代表着谁的权限?
属主 属组 其他用户
2.权限中的rwx-,每个字符所代表什么意思?对应的数字是什么?
r 可读 4
w 可写 2
x 可执行 1
- 没有权限 0
3.-rwxr-xr-x,写出对应数字权限
755
4.-rwxr--r--,写出对应数字权限
744
5.-r-xr-x--x,写出对应数字权限
551
6.-rw-r-xr-x,写出对应数字权限
655
7.-r--r--r--,写出对应数字权限
444
8.-r-xr-----,写出对应数字权限
540
9.---x-w-r--,写出对应数字权限
124
10.-rwxr--rw-,写出对应数字权限
746
11.-rw-r--r--,写出对应数字权限
644
12.---xr--rwx,写出对应数字权限
147
13.777,写出对应字母权限
-rwxrwxrwx
14.545,写出对应字母权限
-r-xr--r-x
15.744,写出对应字母权限
-rwxr--r--
16.600,写出对应字母权限
-rw-------
17.641,写出对应字母权限
-rw-r----x
18.711,写出对应字母权限
-rwx--x--x
19.700,写出对应字母权限
-rwx------
20.555,写出对应字母权限
-r-xr-xr-x
21.733,写出对应字母权限
-rwx-wx-wx
22.713,写出对应字母权限
-rwx--x-wx
23.建一个目录/test,查看这个目录的默认权限是?
755
24.进入/test目录中,建一个文件abc,查看其默认的权限为?
644
25.创建一个文件test.txt,并其将权限改为600.
chmod 600 test.txt
26.将test.txt文件的权限改为755.
chmod 755 test.txt
27.将test.txt文件的权限改为000.
chmod 000 test.txt
28.修改test.txt文件的权限为644.
chmod 644 test.txt
29.给test.txt文件的属主加上x权限。
chmod u+x test.txt
30.给test.txt文件的其他用户加上x权限。
chmod o+x test.txt
31.去除test.txt文件的所有执行权限。
chmod -x test.txt
32.给/test目录及目录下的所有文件或目录的权限统一改为744。
chmod -R 744 /test
33.给/test目录及目录下的所有文件或目录加上x权限(属主、属组、其他用户都执行权限)。
chmod -R +x /test
34.使用stat命令查看test.txt文件的权限,并使用awk将权限取出来,比如:755
[root@qls ~]# stat /etc/hosts
File: ‘/etc/hosts’
Size: 158 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 67125348 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-07-27 16:29:57.708000982 +0800
Modify: 2013-06-07 22:31:32.000000000 +0800
Change: 2020-07-06 02:13:36.028996182 +0800
Birth: -
[root@qls ~]# stat /etc/hosts | awk -F '[(/]' 'NR==4{print $2}'
0644
35.使用stat命令查看test.txt文件的权限,并使用sed将权限取出来,比如:755
[root@qls ~]# stat /etc/hosts | sed -nr '4s#(^.*()(.*)(/[-d].*$)#2#gp'
0644
[root@qls ~]# stat /etc | sed -nr '4s#(^.*()(.*)(/[-d].*$)#2#gp'
10. 用户权限练习题
1.创建目录/web01,所有者是user01,所属组是user02;创建目录/web02,所有者是user02,所属组是user01。
useradd user01
useradd user02
mkdir /web01 /web02
chown user01.user02 /web01
chown user02.user01 /web02
2.复制/etc/fstab文件到/opt下,设置文件所有者为tomcat读写权限,所属组为apps组有读写权限,其他人无权限
cp /etc/fstab /opt
groupadd apps
useradd tomcat
chown tomcat.apps /opt/fstab
chmod 660 /opt/fstab
3.将以下权限翻译成数字,将数字权限用字母表示
rw-r-xr-- 654
rw-r--r-- 644
rwx--x--x 711
rw------- 600
rwxr--r-- 744
rw-rw-r-- 664
rwxrwxrwx 777
751 rwxr-x--x
771 rwxrwx--x
632 rw--wx-w-
551 r-xr-x--x
622 rw--w--w-
746 rwxr--rw-
644 rw-r--r--
755 rwxr-xr-x
4.假设公司研发部的用户david和peter属于组A,财务部的用户life和laowang属于组B,根据要求创建用户及组。
groupadd A
groupadd B
useradd -g A david
useradd -g A peter
useradd -g B life
useradd -g B laowang
5.接第4题,建立目录file1,该目录里面的文件只能由研发部人员读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何操作
mkdir -m 770 file1
chown .A file1
或
chgrp A file1
6.接第4题,建立目录file2,该目录里面的文件只能由财务部人员读取、增加、删除、修改以及执行,其他用户不能对该目录进行任何操作
mkdir file2
chown .B file2
chmod 770 file2
7.接第4题,建立目录file3,该目录里面的文件研发部人员可以读取、增加、删除、修改以及执行,其他部门只能做查看操作
mkdir -m 775 file3
chgrp A file3
8.接第4题,建立目录file4,该目录里面的文件只有研发部的经理David拥有所有操作权限,研发部的其他人只有查看权限,其他部门不能进行任何操作
mkdir -m 750 file4
chown David.A file4
9.新建用户组,shengchan,demo,要求如下:
01、tom是shengchan组的附加成员
02、leo是demo组的附加成员
03、新建用户admin不属于以上任何一个组
groupadd shengchan
groupadd demo
useradd -g shengchan tom
useradd -g demo leo
useradd admin
10.新建目录要求如下:
01、/pub/目录为公共存储目录,所有用户可以读写执行
02、/sc目录是生产部的目录,生产部的成员读写执行,并且生产部人员建立的文件自动归属到
shengchan组中
03、admin用户可以在/sc目录中可以读
mkdir -m 777 /pub
mkdir -m 2770 /sc
chgrp shengchan /sc
chmod o=rx /sc
11.新建目录/www01,/www02,/www03
mkdir /www{01..03}
12.接第11题,更改/www01目录的权限,使其他用户对它没有任何权限;
chmod o=- /www01
13.接第11题,更改/www02目录的权限,使所属组对它拥有读写执行权限;
chmod g=rwx /www02
14.接第11题,更改/www03目录的权限,任何用户都可以读写,但是在/www03目录中创建的任何文件都属于grp1组
chmod 2777 /www03
groupadd grp1
chgrp -R grp1 /www03
15.新建用户zhangsan,lisi,wangergou,三个用户都属于同一个用户组f4,密码都为oldboy
groupadd f4
useradd -g f4 zhangsan
useradd -g&am