What are the linux user permission settings?

WBOY
Release: 2023-05-11 16:43:19
forward
4838 people have browsed it

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    #针对目录设置权限  赋予目录及目录以下所有文件的权限
Copy after login

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
Copy after login

3. 权限对文件或者目录的影响

cat head tail               浏览目录及子目录的列表  ls tree      


w    可以新增,修改文件内容的权利 vim echo > >>    可以新建或者删除,移动目录中的文件的权利


x    可以执行文件的权利 脚本                         可以进入目录   cd
Copy after login

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    #权限不足 没有权限
Copy after login

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权限时,可以进入目录,可以新建,删除、移动文件的权利  但是查看不了目录的列表及属性信息
Copy after login

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/
Copy after login

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
Copy after login

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.说出下面几个特殊符号的含义  * > >>  # .. . ^  $ `` ! 


*  #所有

>  #标准输出重定向  会清空文件的内容之后再将你的内容重定向进去

>>  #标准输出追加重定向 不会清空文件的内容,将文件内容追加到文件的底部 


# #注释  管理员命令行提示符 

..  #当前目录的上一级目录

.  #当前目录 

^  #逻辑概念 开头     

$ #结尾 最后一行

``  #优先执行反引号里面的命令,把命令的执行结果交给外面的命令  里面必须是命令  跟  $()

!  #非  取反
Copy after login

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'
Copy after login

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 f4  lisi

useradd  -g f4  wangergou  

echo "oldboy" |passwd  --stdin  zhangsan

echo "oldboy" |passwd  --stdin  lisi

echo "oldboy" |passwd  --stdin  wangergou

16.接15题,上述用户和组都能在/data/code目录,访问,创建,删除文件,其他用户无法访问该目录

mkdir  -p  -m  770  /data/code

chown  -R  .f4  /data/code


17.接15题,/data/code目录下创建的所有文件自动归属于f4组所有

chmod  g+s   /data/code


18.接15题,现在新增了一批用户,属于默认组,需要开放其他用户在code目录的读权限

chmod  o=rx  /data/code


19.接15题,新增的所有其他用户在code目录下创建的文件自动归属f4组

chmod  o=rwx   /data/code


20.有两个用户组,分别为python组、linux组,python组的人可以修改读取python组的文件,但不能让linux组的人读取;linux组的人可以修改读取linux组的文件,但不能让python组的人读取。

groupadd   linux

grouadd   python  

touch   python.txt  

chmod  770  python.txt

chgrp  python  python.txt


touch   linux.txt  

chmod  770  linux.txt

chgrp  python  linux.txt



21.在当前目录中新建文件text,假设该文件的权限为614。现要求设置该文件属主(u)增加执行权限,属组(g)增加写权限,其他用户(o)删除读权限,应该如何操作,另外修改后的权限用字母应该如何表示

touch  text  

chmod  614  text

chmod 730  text 

-rwx-wx--- 


22.在当前目录中创建目录aaa,并把该目录的权限设置为只有文件主有读、写和执行权限

mkdir  -m 700  aaa

23.设某文件myfile的权限为-rw-r--r--,若要增加所有人可执行的权限,应该怎么做

chmod +x  myfile


24.登录到普通用户user01,删除/opt这个目录,提示权限不足,如果要删除/opt这个目录,不使用root用户删除的话,你该怎么解决?

sudo提权 

chmod  u+s   /usr/bin/rm




25.创建目录/test,要求所有用户对这个目录有所有权限,现在只想让每个用户在这个目录只能对属于自己的文件进行操作,怎么实现?

mkdir  -m  1777  /test  


26.创建一个文件/opt/file.txt,这个文件很重要,现要求所有人只能查看和追加内容进去,不允许有其他的操作,怎么实现?

chattr  +a  /opt/file.txt


27.取消上题的设置,现要求所有人只能查看此文件,不允许有其他的操作,怎么实现?

chattr  -a  /opt/file.txt

chattr  -i  /opt/file.txt



28.请问在当前系统中新创建的目录和文件,权限各是多少,为什么?

目录755

文件644

因umask  控制权限  


29.如果我想要在系统中新创建的目录权限为555,文件为444,怎么实现?

umask   222


30.umask怎么计算目录及文件权限的?

目录最大777  减去umask权限 

文件最大666  减去umask    文件权限遇到奇数时,在奇数为加1  



31.在你修改了test.txt文件之后,如何知道在你下次要修改这个文件时,这个文件有没有被别人修改过?

[root@qls ~]# cp  /etc/hosts  ./
[root@qls ~]# ll
total 4
drwxr-xr-x 2 root root   6 Jul 27 12:12 data
-rw-r--r-- 1 root root 158 Jul 28 10:29 hosts
[root@qls ~]# md5sum  hosts   > figer.txt
[root@qls ~]# cat figer.txt
54fb6627dbaa37721048e4549db3224d  hosts
[root@qls ~]# md5sum  -c  figer.txt 
hosts: OK
[root@qls ~]# echo "1" >> hosts 
[root@qls ~]# md5sum  -c  figer.txt 
hosts: FAILED
md5sum: WARNING: 1 computed checksum did NOT match



32.输入时间命令"date"将当前系统时间输出到/data/1.txt


[root@qls ~]# date
Tue Jul 28 10:31:47 CST 2020
[root@qls ~]# mkdir  -p /data
[root@qls ~]# date > /data/1.txt
[root@qls ~]# cat /data/1.txt
Tue Jul 28 10:32:22 CST 2020



33.输入时间命令"date"将当前系统时间追加到/data/1.txt


[root@qls ~]# date >> /data/1.txt



34.在当前系统能ping通百度的情况下,使用" ping -c3 baidu.com "将返回的信息输出到/data/1.txt

[root@qls ~]# ping -c3 baidu.com  >/data/1.txt
[root@qls ~]# cat /data/1.txt
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=128 time=31.7 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=128 time=33.6 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=3 ttl=128 time=30.9 ms

--- baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 30.939/32.112/33.623/1.140 ms


35.使用“ls /ta”将错误的信息输出到/data/1.txt

[root@qls ~]# ls /ta  2>/data/1.txt
[root@qls ~]# cat /data/1.txt
ls: cannot access /ta: No such file or directory


36.将/data/1.txt的文件内容,标准输出到/data/2.txt

[root@qls ~]# cat /data/1.txt  >  /data/2.txt
[root@qls ~]# cat /data/2.txt
ls: cannot access /ta: No such file or directory


37.使用"seq 10 50"将以0结尾的行标准输出到3.txt


[root@qls ~]# seq  10 50 | grep  '0$'  > 3.txt
[root@qls ~]# cat 3.txt
10
20
30
40
50
[root@qls ~]# seq  10 50 | sed -n '/0$/p'  
10
20
30
40
50
[root@qls ~]# seq  10 50 | awk  '/0$/'
10
20
30
40
50


38.把/etc/fstab文件内容重定向到/tmp目录下文件名为fstab.out

[root@qls ~]# cat  /etc/fstab   > /tmp/fstab.out
[root@qls ~]# cat /tmp/fstab.out

#
# /etc/fstab
# Created by anaconda on Mon Jul  6 02:13:15 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=4aa02e85-ffe1-4783-9886-a328f923bee8 /                       xfs     defaults        0 0
UUID=70df4a5b-091c-4aaa-9cc7-d745201ec394 /boot                   xfs     defaults        0 0
UUID=6aefd444-30dc-4c0e-9a8d-75a8b1d9856b swap                    swap    defaults        0 0



39.把字符"hello world"追加到/tmp/fstab.out文件尾部


[root@qls ~]# echo  "hello world" >> /tmp/fstab.out 

40.输入df -h,取出当前系统根分区已用磁盘空间的百分比,并将取出来的数值输出到/data/1.txt

[root@qls ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        98G  1.4G   97G   2% /
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.6M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda1       497M  120M  378M  25% /boot
tmpfs           199M     0  199M   0% /run/user/0
[root@qls ~]# df -h | awk  '/\/$/'
/dev/sda3        98G  1.4G   97G   2% /
[root@qls ~]# df -h | awk  '/\/$/{print $5}' 
2%
[root@qls ~]# df -h | awk  '/\/$/{print $(NF-1)}'   >/data/1.txt



41.使用命令ping测试10.0.0.100是否通畅,把输出的结果不管是正确的还是错误的都追加到/data/1.txt

[root@qls ~]# ping  -c4  10.0.0.100  &> /data/1.txt 
[root@qls ~]# cat /data/1.txt
PING 10.0.0.100 (10.0.0.100) 56(84) bytes of data.
64 bytes from 10.0.0.100: icmp_seq=1 ttl=64 time=0.134 ms
64 bytes from 10.0.0.100: icmp_seq=2 ttl=64 time=0.038 ms
64 bytes from 10.0.0.100: icmp_seq=3 ttl=64 time=0.038 ms
64 bytes from 10.0.0.100: icmp_seq=4 ttl=64 time=0.034 ms

--- 10.0.0.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.034/0.061/0.134/0.042 ms


42.使用重定向从文件/etc/passwd中读取数据。


[root@qls ~]# cat < /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

43.用 << 举个命令的使用例子。


[root@qls ~]# cat >123.txt<<EOF
> 12
> EOF
[root@qls ~]# cat 123.txt 
12



44.改变文件所有者的命令是?

chown

45.新建用户oldboy,oldgirl,属同一用户组edu

groupadd   edu

useradd  -g edu  oldboy


useradd  -g edu  oldgirl


46.修改文件1.txt的所有者为oldboy,属组为edu

chown  oldboy.edu  1.txt


47.除所有者以外,属组和其他用户均没有任何权限(要求普通用户进行验证)



48.复制/etc/fstab文件到/var/tmp下,设置文件所有者为wangcai读写权限,所属组为sysadmins组有读写权限,其他人无权限

cp  /etc/fstab  /var/tmp

useradd  wangcai

groupadd   sysadmins  


chmod  660  /var/tmp/fstab

49.创建下面的用户、组和组成员关系,用户natasha,使用admins作为附属组,用户harry,也使用admins作为附属组,用户sh,不可以登录系统,natasha,harry,sh密码都是centos

groupadd   admins

useradd    -G  admins   natasha

useradd    -G  admins   harry  

useradd  -M  -s  /sbin/nologin 


echo "centos" | passwd   --stdin  natasha

echo "centos" | passwd   --stdin  harry

echo "centos" | passwd   --stdin  sh


50.新建一个用户rose,uid为555,gid为500,注释信息为:linux,家目录在/rose

groupadd  -g  500  rose

useradd  -u 555  -g 500  -c "linux"  -d  /rose   rose  


51.翻译题
01).command not found         #没有这个命令        
02).No such file or directory     #没有这个文件或者目录        
03).Permission denied         #权限不足        
04).overwrite           #覆盖       
05).File exists           #文件已存在              
06).Is a directory          #这是个目录            
07).Not a directory         #这不是个目录                   
08).Warning: Changing a readonly file   #警告:改变了一个只读文件    
09).Found a swap file by the name ".1.swp"  #找到一个交换文件,他的名字是.1.swp
10).unrecognized option '--oldboy'      #未知的选项  --oldboy
11).Operation not permitted         #操作不允许 
12).invalid option              #无效的选项
Copy after login

11.用户权限练习题

1.找出/tmp目录下,属主不是root,且文件名不以f开头的文件 

find  /tmp  -type f   !  -user  root  -name "[^f]*"


2.查找/etc/目录下,所有.conf后缀的文件

find  /etc/   -type f  -name "*.conf"

3.查找/var目录下属主为root,且属组为mail的所有文件

find  /var  -user  root  -a  -group  mail   

[root@qls ~]# find  /var  -user  root  -a  -group  mail    -ls
201345345    4 drwxrwxr-x   2 root     mail         4096 Jul 24 09:08 /var/spool/mail
201696091    4 -rw-------   1 root     mail         1857 Jul 22 11:11 /var/spool/mail/root




4.查找/var目录下7天以前,同时属主不为root,也不是postfix的文件 

find  /var  -type  f  -mtime +7 ! -user  root  -a  ! -user postfix

[root@qls ~]# find  /var  -type  f  -mtime +7  ! \( -user  root  -o -user postfix  \) -ls  

5.查找/etc目录下大于1M且类型为普通文件的所有文件

find  /etc   -type  f  -size +1M  


6.查找/etc目录下所有用户都没有写权限的文件 

[root@qls ~]# find  /etc/   !  -perm    /222  -ls  

7.查找/目录下最后创建时间是3天前,后缀是*.log的文件

find  /  -type  f   -mtime  +3   -name "*.log"

8.查找/目录下文件名包含txt的文件


find  /  -type   -name  "*txt*"

9.查找/目录下属主是oldboy并且属组是oldboy的文件

find   /    -user  oldboy  -group  oldboy  


10.查找/目录下属主是oldboy但是属组不是oldboy的文件

find  /  -user oldboy  ! -group  oldboy

11.查找/目录下属主是oldboy或者属主是oldgirl的文件

find  /   \(  -user  oldboy  -o  -user  oldgirl  \)


12.查找/tmp目录下属主既不是oldboy,也不是oldgirl的文件

find  /tmp  -type  f   ! -user oldboy -a  ! -user oldgirl

[root@qls ~]# find  /tmp  -type  f    ! \( -user  oldboy  -o -user oldgirl  \) -ls  

13.查找/var/log目录下7天以前的文件

find  /var/log  -type  f    -mtime  +7  


14.查找/tmp目录下15天以前的文件删除

find  /tmp   -type  f   -mtime  +15  -delete

find  /tmp   -type  f   -mtime  +15  | xargs  rm -f 

find  /tmp   -type  f   -mtime  +15  -exec  rm -f  {}  \;

rm -f  $(find  /tmp   -type  f   -mtime  +15 )

rm -f `find  /tmp   -type  f   -mtime  +15 `

15.查找/home目录下,类型是目录的,并且属主是oldboy的目录

find  /home  -type  d  -user  oldboy


16.查找/var/log下大于100kb且以log结尾的所有文件

find  /var/log  -type f  -size +100k  -name "*log"


17.查找tmp目录下所属组group1,所属主user1的目录

find  /tmp -type  d  -user user1  -a  -group  group1  

18.同时查找根目录下名为1.txt,2.txt的文件和名字带a的目录

[root@qls ~]# find  /data  -type  f  -name "[12].txt"  -o -type  d  -name "*a*"
/data
/data/1.txt
/data/2.txt

[root@qls ~]# find  /data \( -type  f  -name "[12].txt"  -o -type  d  -name "*a*" \) -ls
818813    0 drwxrws---   3 root     ops_group      147 Jul 28 10:35 /data
818804    4 -rw-r--r--   1 root     ops_group      432 Jul 28 10:44 /data/1.txt
818807    4 -rw-r--r--   1 root     ops_group       49 Jul 28 10:35 /data/2.txt


19.查找/tmp目录下所有文件并删除

find  /tmp  -type f  -delete  

20.查找/etc目录下至少有一类用户没有写权限的文件

find  /etc -type  f   ! -perm   -222

[root@qls ~]# find  /etc  -type  f   ! -perm   -222  -ls

21.查找/var目录下不属于root、lp、gdm的所有文件

find   /var  -type  f  ! \(  -user root -o -user lp  -o -user gdm  \)

[root@qls ~]# find   /var  -type  f  ! \(  -user root -o -user lp  -o -user gdm  \)  -ls



22.将/etc/中的所有目录(仅目录)复制到/tmp下,目录结构不变

[root@qls ~]# find  /etc -type  d  |  xargs -I  {}  mkdir  -p  /tmp/{}


[root@qls ~]# find  /etc/ -type  d   -exec  mkdir  -p  /opt/{}  \;




23.将/etc目录复制到/var/tmp/,/var/tmp/etc的所有目录权限777  /var/tmp/etc目录中所有文件权限666

cp  -a  /etc  /var/tmp/

find  /var/tmp/etc/   -type  d  -exec  chmod 777  {}  \;

find  /var/tmp/etc/   -type  f  -exec  chmod  666  {} \;


24.保留/var/log/下最近7天的日志文件,其他全部删除

find  /var/log   ! -mtime  -7  -delete 


25.创建touch file{1..10}10个文件, 保留file9,其他一次全部删除

[root@qls opt]# find  ./  -type f   !  -name  "file9"  -delete



[root@qls opt]# find  ./  -type f  -name  "file[^9]*"  -delete

26.解释如下每条命令含义


mkdir /root/dir1    #创建目录


touch /root/dir1/file{1..10}  #创建文件


find /root/dir1 -type f -name "file5"  #查找文件名为file5的文件


find /root/dir1 ! -name "file5"    #查找文件名不是file5的文件


find /root/dir1 -name "file5" -o -name "file9"  #查找文件名是file5或者是file9的文件


#错误写法
find /root/dir1 -name "file5" -o -name "file9" -ls  #查找文件名是file5或者是file9的文件并显示详细信息


find /root/dir1 \( -name "file5" -o -name "file9" \) -ls #查找文件名是file5或者是file9的文件并显示详细信息



find /root/dir1 \( -name "file5" -o -name "file9" \) -exec rm -rvf {} \;

#删除file5或者file9

find /root/dir1 ! \( -name "file4" -o -name "file8" \) -exec rm -vf {} \;

#删除文件名不叫file4或者file8的文件
Copy after login

The above is the detailed content of What are the linux user permission settings?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!