每天一遍yum仓库构建:
[root@localhost ~]# mkdir /nsd30 [root@localhost ~]# mount /dev/cdrom /nsd30 [root@localhost ~]# ls /nsd30 [root@localhost ~]# rm -rf /etc/yum.repos.d/* [root@localhost ~]# vim /etc/yum.repos.d/nsd.repo [nsd] name=centos baseurl=file:///nsd30 enabled=1 gpgcheck=0 [root@localhost ~]# yum -y install gcc二、权限简介
访问权限: 读取:允许查看内容-read 利用r表示 写入:允许修改内容-write 利用w表示 可执行:允许运行和切换-excute 利用x表示 对于文本文件: r:查看文件内容 cat head tail less grep w:修改文件内容并且能够保存 vim > >> x:学习shell与Python时期 归属关系 –所有者:拥有此文件/目录的用户-user 利用u表示 –所属组:拥有此文件/目录的组-group利用g表示 –其他用户:除所有者、所属组以外的用户-other利用o表示 zhangsan(所有者) zhangsan组(所属组) a.txt 查看文件或目录,权限与归属关系 执行 ls -l .. .. 命令查看,输出信息包括7个字段 以-开头:文本文件 以d开头:目录 以l开头:快捷方式 [root@client ~]# ls -l /etc/passwd -rw-r--r--. 1 root root 846 9月 26 17:57 /etc/passwd [root@client ~]# ls -l /etc/shadow ----------. 1 root root 585 9月 26 17:57 /etc/shadow [root@client ~]# ls -ld /etc/ drwxr-xr-x. 75 root root 8192 9月 26 18:44 /etc/ [root@client ~]# ll 总用量 4 -rw-------. 1 root root 1257 9月 26 17:57 anaconda-ks.cfg [root@client ~]# ls -ld /home/ drwxr-xr-x. 2 root root 6 4月 11 2018 /home/ [root@client ~]# ls -ld /tmp/ #tmp目录拥有特殊权限 drwxrwxrwt. 13 root root 4096 10月 5 23:30 /tmp/三、修改权限
chmod命令 –格式:chmod [ugoa] [+-=][rwx] 文件... 常用命令选项 -R:递归修改权限 [root@client ~]# mkdir /nsd01 [root@client ~]# ls -ld /nsd01/ drwxr-xr-x. 2 root root 6 10月 5 23:33 /nsd01/ [root@client ~]# chmod u-w /nsd01/ #所有者去掉w权限 [root@client ~]# ls -ld /nsd01/ dr-xr-xr-x. 2 root root 6 10月 5 23:33 /nsd01/ [root@client ~]# chmod u+w /nsd01/ #所有者加上w权限 [root@client ~]# ls -ld /nsd01/ drwxr-xr-x. 2 root root 6 10月 5 23:33 /nsd01/ [root@client ~]# chmod u=w /nsd01/ #所有者重新定义权限 [root@client ~]# ls -ld /nsd01/ d-w-r-xr-x. 2 root root 6 10月 5 23:33 /nsd01/ [root@client ~]# chmod g+w /nsd01/ #所属组加上w权限 [root@client ~]# ls -ld /nsd01/ d-w-rwxr-x. 2 root root 6 10月 5 23:33 /nsd01/ [root@client ~]# chmod u=rwx,g=rx,o=rwx /nsd01/ [root@client ~]# ls -ld /nsd01/ drwxr-xrwx. 2 root root 6 10月 5 23:33 /nsd01/ [root@client ~]# mkdir -p /opt/aa/bb/cc [root@client ~]# chmod -R o=--- /opt/aa [root@client ~]# ls -ld /opt/aa/ drwxr-x---. 3 root root 16 10月 5 23:40 /opt/aa/ [root@client ~]# ls -ld /opt/aa/bb/ drwxr-x---. 3 root root 16 10月 5 23:40 /opt/aa/bb/ [root@client ~]# ls -ld /opt/aa/bb/cc/ drwxr-x---. 2 root root 6 10月 5 23:40 /opt/aa/bb/cc/四、判定用户具备的权限
1.首先判断用户对于该数据所处身份 2.查看相应身份的权限位 对于目录: r:可以查看目录下内容 w:可以新建、删除、改名、目录的内容 ,对目录本身无法修改 x:可以切换到此目录下案例1:设置基本权限
1)以root身份新建/nsddir1/目录,在此目录下新建readme.txt文件 [root@localhost ~]# mkdir /nsddir1 [root@localhost ~]# echo 123456 > /nsddir1/readme.txt [root@localhost ~]# cat /nsddir1/readme.txt 2)使用户zhangsan能够修改readme.txt文件内容 [root@localhost ~]# chmod o+w /nsddir1/readme.txt 3)使用户zhangsan不可以修改readme.txt文件内容 [root@localhost ~]# chmod o-w /nsddir1/readme.txt 4)使用户zhangsan能够在此目录下创建/删除子目录 [root@localhost ~]# chmod o+w /nsddir1/ [root@localhost ~]# ls -ld /nsddir1/ 5)调整此目录的权限,使任何用户都不能进入,然后测试用户zhangsan是否还能修改readme.txt(测试结果不能,对父目录没有权限) [root@localhost ~]# chmod a-x /nsddir1/ 6)为此目录及其下所有文档设置权限 rwxr-x--- [root@localhost ~]# chmod -R u=rwx,g=rx,o=--- /nsddir1/五、权限可以用数字方式表示
权限位的8进制数表示 r、w、x分别对应4、2、1,后3组分别求和 [root@client ~]# mkdir /nsd06 [root@client ~]# ls -ld /nsd06 drwxr-xr-x. 2 root root 6 10月 5 23:49 /nsd06 [root@client ~]# chmod 700 /nsd06 [root@client ~]# ls -ld /nsd06 drwx------. 2 root root 6 10月 5 23:49 /nsd06 [root@client ~]# chmod 750 /nsd06 [root@client ~]# ls -ld /nsd06 drwxr-x---. 2 root root 6 10月 5 23:49 /nsd06 [root@client ~]# chmod 755 /nsd06 [root@client ~]# ls -ld /nsd06 drwxr-xr-x. 2 root root 6 10月 5 23:49 /nsd06六、修改归属关系
chown命令 chown 属主 文件... chown 属主:属组 文件... chown :属组 文件... 常用命令选项 -R:递归修改权限 [root@client ~]# mkdir /nsd05 [root@client ~]# ls -ld /nsd05 drwxr-xr-x. 2 root root 6 10月 5 23:52 /nsd05 [root@client ~]# groupadd tarena #创建tarena组 [root@client ~]# groupadd sg #创建sg组 [root@client ~]# useradd zhangsan #创建zhansan用户 [root@client ~]# id zhangsan #查看用户 uid=1001(zhangsan) gid=1004(zhangsan) 组=1004(zhangsan) [root@client ~]# chown zhansan:tarena /nsd05 [root@client ~]# ls -ld /nsd05 drwxr-xr-x. 2 zhansan tarena 6 10月 5 23:52 /nsd05 [root@client ~]# useradd list [root@client ~]# chown list /nsd05 #单独修改所有者 [root@client ~]# ls -ld /nsd05 drwxr-xr-x. 2 list tarena 6 10月 5 23:52 /nsd05 [root@client ~]# chown :sg /nsd05 #单独修改所属组 [root@client ~]# ls -ld /nsd05 drwxr-xr-x. 2 list sg 6 10月 5 23:52 /nsd05 判定用户具备的权限 匹配及停止 1.首先判断用户对于该数据所处身份 所有者>所属组>其他人 2.查看相应身份的权限位**案例2:归属关系练习 **
1)利用root的身份新建/tarena目录,并进一步完成下列操作 [root@localhost ~]# mkdir /tarena 2)将/tarena属主设为gelin01,属组设为tmooc组 [root@localhost ~]# useradd gelin01 [root@localhost ~]# groupadd tmooc [root@localhost ~]# chown gelin01:tmooc /tarena 3)使用户gelin01对此目录具有rwx权限,除去所有者与所属组之外的用户对此目录无任何权限 [root@localhost ~]# chmod o=--- /tarena 4)使用户gelin02能进入、查看此目录 [root@localhost ~]# useradd gelin02 [root@localhost ~]# gpasswd -a gelin02 tmooc 5)将gelin01加入tmooc组,将tarena目录的权限设为450,测试gelin01用户能否进入此目录 [root@localhost ~]# gpasswd -a gelin01 tmooc [root@localhost ~]# chmod 450 /tarena七、创建数据的默认权限
新建文件/目录的默认权限 一般文件默认均不给 x 执行权限 其他取决于 umask(权限掩码) 设置 默认情况下,umask值为022。新建目录权限为755,新建文件权限为644八、附加权限(特殊权限)
粘滞位,Sticky Bit 权限 –占用其他人(Other)的 x 位 –显示为 t 或 T,取决于其他人是否有 x 权限 –适用于目录,用来限制用户滥用写入权 –在设置了粘滞位的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档 [root@client ~]# mkdir /home/public [root@client ~]# chmod 777 /home/public/ [root@client ~]# ls -ld /home/public/ drwxrwxrwx. 2 root root 6 10月 6 00:12 /home/public/ [root@client ~]# chmod o+t /home/public/ [root@client ~]# ls -ld /home/public/ drwxrwxrwt. 2 root root 6 10月 6 00:12 /home/public/SGID权限:
–占用属组(Group)的 x 位 –显示为 s 或 S,取决于属组是否有 x 权限 –对目录有效 –在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份 [root@client ~]# mkdir /test01 [root@client ~]# ls -ld /test01/ drwxr-xr-x. 2 root root 6 10月 6 00:19 /test01/ [root@client ~]# chown :tmooc /test01/ #修改所属组 [root@client ~]# ls -ld /test01/ drwxr-xr-x. 2 root tmooc 6 10月 6 00:19 /test01/ [root@client ~]# mkdir /test01/nsd11 [root@client ~]# ls -ld /test01/nsd11/ drwxr-xr-x. 2 root root 6 10月 6 00:19 /test01/nsd11/ [root@client ~]# chmod g+s /test01/ #赋予SGID权限 [root@client ~]# ls -ld /test01/ drwxr-sr-x. 3 root tmooc 19 10月 6 00:19 /test01/ [root@client ~]# mkdir /test01/nsd22 [root@client ~]# ls -ld /test01/nsd22/ #查看继承效果 drwxr-sr-x. 2 root tmooc 6 10月 6 00:20 /test01/nsd22/九、ACL策略管理
文档归属的局限性 任何人只属于三种角色:属主、属组、其他人 无法实现更精细的控制 acl访问策略 作用:能够对个别用户、个别组设置独立的权限 大多数挂载的EXT3/4、XFS文件系统默认已支持 setfacl命令 –格式:setfacl [选项] u:用户名:权限 文件... setfacl [选项] g:组名:权限 文件... 常用命令选项 –-m:定义一条ACL策略 –-x:清除指定的ACL策略 –-b:清除所有已设置的ACL策略 –-R:递归设置ACL策略 [root@client ~]# mkdir /nsd13 [root@client ~]# chmod 770 /nsd13 [root@client ~]# ls -ld /nsd13 drwxrwx---. 2 root root 6 10月 6 00:27 /nsd13 [root@client ~]# su - zhangsan [zhangsan@client ~]$ cd /nsd13 -bash: cd: /nsd13: 权限不够 [zhangsan@client ~]$ exit 登出 [root@client ~]# setfacl -m u:zhangsan:rx /nsd13 [root@client ~]# getfacl /nsd13 #查看ACL策略 getfacl: Removing leading '/' from absolute path names # file: nsd13 # owner: root # group: root user::rwx user:zhangsan:r-x group::rwx mask::rwx other::--- [root@client ~]# su - zhangsan 上一次登录:二 10月 6 00:27:45 CST 2020pts/0 上 [zhangsan@client ~]$ cd /nsd13 [zhangsan@client nsd13]$ pwd /nsd13 [zhangsan@client nsd13]$ exit 登出设置/etc/shadow文件权限,让lisi用户可以查看其文件内容,您有几种办法?
方法一:利用其它人 chmod o+r /etc/shadow 方法二:利用所属组 chown :lisi /etc/shadow #修改所属组 chmod g+r /etc/shadow 方法三:利用所有者 chown lisi /etc/shadow #修改所有者 chmod u+r /etc/shadow 方法四:利用ACL策略 Setfacl -m u:lisi:r /etc/shadow练习命令的选项
[root@localhost ~]# setfacl -m u:zhangsan:rwx /nsd15 [root@localhost ~]# setfacl -m u:lisi:rx /nsd15 [root@localhost ~]# setfacl -m u:dc:rwx /nsd15 [root@localhost ~]# setfacl -m u:gelin01:rx /nsd15 [root@localhost ~]# getfacl /nsd15 ]# setfacl -x u:zhangsan /nsd15 #删除指定用户的ACL策略 ]# getfacl /nsd15 ]# setfacl -b /nsd15 #清空所有的ACL策略 ]# getfacl /nsd15 -R:递归设置ACL策略 [root@localhost ~]# setfacl -Rm u:dc:rwx /opt/aa [root@localhost ~]# getfacl /opt/aa [root@localhost ~]# getfacl /opt/aa/bb [root@localhost ~]# getfacl /opt/aa/bb/cc利用ACL策略拉黑某个用户
[root@localhost ~]# mkdir /nsd16 [root@localhost ~]# chmod 777 /nsd16 [root@localhost ~]# chmod o+t /nsd16 [root@localhost ~]# ls -ld /nsd16 [root@localhost ~]# setfacl -m u:lisi:--- /nsd16十、Set UID附加权限(了解内容)
SUID权限 –占用属主(User)的 x 位 –显示为 s 或 S,取决于属主是否有 x 权限 –仅对可执行的程序有意义 –当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应权限 [root@localhost ~]# ls /usr/bin/mkdir [root@localhost ~]# /usr/bin/mkdir /opt/lele [root@localhost ~]# ls /opt/ [root@localhost ~]# cp /usr/bin/mkdir /usr/bin/hahadir [root@localhost ~]# ls /usr/bin/hahadir [root@localhost ~]# /usr/bin/hahadir /opt/haxi [root@localhost ~]# ls /opt/ [root@localhost ~]# chmod u+s /usr/bin/hahadir [root@localhost ~]# ls -l /usr/bin/hahadir [root@localhost ~]# su - dc [dc@localhost ~]$ /usr/bin/mkdir dc01 [dc@localhost ~]$ ls -l [dc@localhost ~]$ /usr/bin/hahadir dc02 [dc@localhost ~]$ ls -l [dc@localhost ~]$ exit