admin-6

时间:2023-03-08 16:56:55

Admin06

基本权限
访问方式(权限)
读取:允许查看内容-read r
写入:允许修改内容-write w
可执行:允许运行和切换-execute x

对与文本文件:
r:cat head tail less
w:vim
x:可以运行该文件

权限适用对象(归属)
所有者(属主):拥有此文件/目录的用户-user u
所属组(属组 ):拥有此文件/目录的组-group g
其他用户:除所有者、所属组以外的用户-other o

查看权限
ls -ld 文件或目录...

[root@server0 ~]# ls -ld /etc/
drwxr-xr-x. 133 root root 8192 1月 1 2008 /etc/
权限位 硬连接数 属主 属组 大小 最后修改的时间 文件/目录名称

[root@server0 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 2171 3月 6 10:06 /etc/passwd

[root@server0 ~]# ls -l /etc/rc.local
lrwxrwxrwx. 1 root root 13 5月 7 2014 /etc/rc.local -> rc.d/rc.local

以 - 开头:文本文件
以 d 开头:目录
以 l 开头:快捷方式

######################################
设置基本权限
chmod [-R] 归属关系+-=权限类别 文档...
[-R]:递归设置权限
[root@server0 ~]# mkdir /nsd01
[root@server0 ~]# ls -ld /nsd01/

[root@server0 ~]# chmod u-w /nsd01/
[root@server0 ~]# ls -ld /nsd01/

[root@server0 ~]# chmod g+w /nsd01/
[root@server0 ~]# ls -ld /nsd01/

[root@server0 ~]# chmod o=rwx /nsd01/
[root@server0 ~]# ls -ld /nsd01/

[root@server0 ~]# chmod u=rwx,g=rwx,o=--- /nsd01/
[root@server0 ~]# ls -ld /nsd01/
drwxrwx---. 2 root root 6 3月 6 14:46 /nsd01/
[root@server0 ~]#

[root@server0 ~]# chmod ugo=rwx /nsd01/
[root@server0 ~]# ls -ld /nsd01/

#################################
管理员root具备一切权限

[root@server0 ~]# mkdir /nsd02
[root@server0 ~]# useradd zhangsan
[root@server0 ~]# id zhangsan

[root@server0 ~]# echo 123 > /nsd02/a.txt
[root@server0 ~]# ls -l /nsd02/a.txt
[root@server0 ~]# id zhangsan

[root@server0 ~]# su - zhangsan
[zhangsan@server0 ~]$ vim /nsd02/a.txt //不可编辑
[zhangsan@server0 ~]$ exit

[root@server0 ~]# chmod o+w /nsd02/a.txt
[root@server0 ~]# ls -l /nsd02/a.txt
[root@server0 ~]# su - zhangsan
[zhangsan@server0 ~]$ vim /nsd02/a.txt

######################################
目录的 r 权限:能够 ls 浏览此目录内容
目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/...等更改目录内容的操作
目录的 x 权限:能够 cd 切换到此目录

[root@server0 ~]# ls -ld /nsd02/
drwxr-xr-x. 2 root root 18 3月 6 14:59 /nsd02/
[root@server0 ~]# id zhangsan
uid=1005(zhangsan) gid=1006(zhangsan) 组=1006(zhangsan)
[root@server0 ~]# su - zhangsan
上一次登录:三 3月 6 15:02:50 CST 2019pts/0 上
[zhangsan@server0 ~]$ cd /nsd02/
[zhangsan@server0 nsd02]$ pwd
/nsd02

为组中 o 没有 x 权限
[root@server0 ~]# chmod o-x /nsd02/
[root@server0 ~]# su - zhangsan
[zhangsan@server0 ~]$ cd /nsd02
-bash: cd: /nsd02: Permission denied //权限不足

[zhangsan@server0 ~]$ ls /nsd02/
ls: cannot access /nsd02/a.txt: Permission denied
a.txt
[zhangsan@server0 ~]$ ls -l /nsd02/
ls: cannot access /nsd02/a.txt: Permission denied
total 0
?????????? ? ? ? ? ? a.txt //显示异常

为组中 o 添加 x 权限
[root@server0 ~]# chmod o=x /nsd02/
[root@server0 ~]# ls -ld /nsd02/
drwxr-x--x. 2 root root 18 3月 6 14:59 /nsd02/
[root@server0 ~]#
[root@server0 ~]# su - zhangsan

[zhangsan@server0 ~]$ cd /nsd02
[zhangsan@server0 nsd02]$ pwd
/nsd02
[zhangsan@server0 nsd02]$ ls
ls: cannot open directory .: Permission denied

[zhangsan@server0 nsd02]$ mkdir zhangsan
mkdir: cannot create directory ‘zhangsan’: Permission denied

为组中 o 添加 w 权限
[root@server0 ~]# chmod o+w /nsd02/
[root@server0 ~]# su - zhangsan
[zhangsan@server0 ~]$ cd /nsd02/
[zhangsan@server0 nsd02]$ mkdir zhangsan

目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/...等更改目录内容的操作
[zhangsan@server0 nsd02]$ cd ..
[zhangsan@server0 /]$ ls -ld /nsd02/
[zhangsan@server0 /]$ mv /nsd02/ /stu02

w只对子目录生效,对目录本身不生效的。需要给相应的父目录权限。
[root@server0 ~]# chmod o+w /
[root@server0 ~]# su - zhangsan
[zhangsan@server0 ~]$ mv /nsd02/ /stu02
[zhangsan@server0 ~]$ ls /nsd02
ls: cannot access /nsd02: No such file or directory
[zhangsan@server0 ~]$ ls /stu02/

###########################################
以root用户新建/nsddir 目录,在此目录下新建readme.txt 文件,并进一步完成下列操作
1)使用户zhangsan能够在此目录下创建子目录
切换用户 su - zhangsan
mkdir /nsddir
chmod o+w /nsddir

2)使用户zhangsan不能够在此目录下创建子目录
chmod o-w /nsddir

3)使用户zhangsan能够修改readme.txt文件
chmod o+w /nsddir/readme.txt

4)调整此目录的权限,使所有用户不能 cd 进入此目录
chmod u-x,g-x,o-x /nsddir

5)为此目录及其下所有文档设置权限rwxr-x---
chmod -R u=rwx,g=rx,o=--- /nsddir

############################################
设置文档归属
chown [-R] 属主 文档...
chown [-R] :属组 文档...
chown [-R] 属主:属组 文档...

[root@server0 ~]# mkdir /nsd03
[root@server0 ~]# ls -ld /nsd03/
drwxr-xr-x. 2 root root 6 3月 6 15:37 /nsd03/
[root@server0 ~]# groupadd tedu
[root@server0 ~]# chown zhangsan:tedu /nsd03
[root@server0 ~]# ls -ld /nsd03/
drwxr-xr-x. 2 zhangsan tedu 6 3月 6 15:37 /nsd03/

[root@server0 ~]# chown root /nsd03/ //修改所有者
[root@server0 ~]# ls -ld /nsd03/

[root@server0 ~]# chown :zhangsan /nsd03/ //修改所属组
[root@server0 ~]# ls -ld /nsd03/

#######################################################

判别权限的方法:
1、查看用户对于文档的身份,属于哪一个归属关系
匹配即停止原则
所有者>所属组>其他人
2、查看相应归属关系位置的权限

[root@server0 ~]# useradd natasha
[root@server0 ~]# useradd kenji
[root@server0 ~]# useradd tom
[root@server0 ~]# mkdir /nsd04

[root@server0 ~]# ls -ld /nsd04
drwxr-xr-x. 2 root root 6 3月 6 15:41 /nsd04
[root@server0 ~]# id tom
uid=1006(tom) gid=1008(tom) 组=1008(tom)

[root@server0 ~]# chown tom:tedu /nsd04/
[root@server0 ~]# ls -ld /nsd04
drwxr-xr-x. 2 tom tedu 6 3月 6 15:41 /nsd04
[root@server0 ~]# id tom
uid=1006(tom) gid=1008(tom) 组=1008(tom)

[root@server0 ~]# su - tom
[tom@server0 ~]$ cd /nsd04/
[tom@server0 nsd04]$ mkdir haha
[tom@server0 nsd04]$ ls
haha

+++++++++++++++++++++++++++++++++++++++++++++++

[root@server0 ~]# ls -ld /nsd04/
drwxr-xr-x. 3 tom tedu 17 3月 6 15:43 /nsd04/
[root@server0 ~]# id kenji
uid=1004(kenji) gid=1005(kenji) 组=1005(kenji)
[root@server0 ~]# gpasswd -a kenji tedu
[root@server0 ~]# id kenji
uid=1004(kenji) gid=1005(kenji) 组=1005(kenji),1007(tedu)

[root@server0 ~]# id kenji
uid=1004(kenji) gid=1005(kenji) 组=1005(kenji),1007(tedu)
[root@server0 ~]# su - kenji
[kenji@server0 ~]$ cd /nsd04/
[kenji@server0 nsd04]$ ls
haha
[kenji@server0 nsd04]$ touch a.txt //因为kenji所属组没有 w 权限
touch: cannot touch ‘a.txt’: Permission denied

++++++++++++++++++++++++++++++++++++

[root@server0 ~]# chmod o=rwx /nsd04
[root@server0 ~]# ls -ld /nsd04/
drwxr-xrwx. 3 tom tedu 17 3月 6 15:43 /nsd04/
[root@server0 ~]# id kenji
uid=1004(kenji) gid=1005(kenji) 组=1005(kenji),1007(tedu)

kenji是否可以在/nsd04子目录中操作

+++++++++++++++++++++++++++++++++++++++++
利用root用户新建/nsd05目录,并进一步完成下列操作
1)将属主设为gelin01,属组设为tarena组
[root@server0 ~]# useradd gelin01
[root@server0 ~]# useradd gelin02
[root@server0 ~]# groupadd tarena
[root@server0 ~]# mkdir /nsd05
[root@server0 ~]# chown gelin01:tarena /nsd05

2)使用户gelin01对此目录具有rwx权限,其他人对此目录无任何权限
[root@server0 ~]# chmod o=--- /nsd05

3)使用户gelin02能进入、查看此目录
[root@server0 ~]# gpasswd -a gelin02 tarena

4)将gelin1加入tarena组,将nsd05目录的权限设为rw-r-x---
再测试gelin01用户能否进入此目录
[root@server0 ~]# chmod u=rw,g=rx /nsd05

#########################################
附加权限(特殊权限)
Set GID
附加在属组的 x 位上
属组的权限标识会变为 s
适用于【目录】,Set GID可以使目录下【新增】的文档自动设置与父目录相同的属组
继承父目录的所属组身份

[root@server0 ~]# mkdir /nsd06
[root@server0 ~]# mkdir /nsd07

[root@server0 ~]# ls -ld /n7
[root@server0 ~]# ls -ld /n6

[root@server0 ~]# chmod g+s /nsd06/
[root@server0 ~]# ls -ld /n6
[root@server0 ~]# chmod g+s /n7
[root@server0 ~]# ls -ld /n7

如果所属组权限位是 S ,说明没有 x 权限;
如果所属组权限位是 s ,说明有 x 权限。

+++++++++++++++++++++++++++++++++++++++
附加权限(特殊权限)
Set GID
附加在属组的 x 位上
属组的权限标识会变为 s
适用于【目录】,Set GID可以使目录下【新增】的文档自动设置与父目录相同的属组
继承父目录的所属组身份

[root@server0 ~]# mkdir /nsd07
[root@server0 ~]# ls -ld /nsd07/

[root@server0 ~]# groupadd tarena
[root@server0 ~]# ls -ld /nsd07/
drwxr-xr-x. 2 root tarena 6 3月 7 10:13 /nsd07/

[root@server0 ~]# mkdir /nsd07/test01
[root@server0 ~]# ls -ld /nsd07/test01
drwxr-xr-x. 2 root root 6 3月 7 10:14 /nsd07/test01

[root@server0 ~]# chmod g+s /nsd07/
[root@server0 ~]# ls -ld /nsd07/
drwxr-sr-x. 3 root tarena 19 3月 7 10:14 /nsd07/
[root@server0 ~]# mkdir /nsd07/test02
[root@server0 ~]# ls -ld /nsd07/test02
drwxr-sr-x. 2 root tarena 6 3月 7 10:16 /nsd07/test02

+++++++++++++++++++++++++++++++++++++++++
案例1:配置附加权限

创建一个共用目录 /home/admins,要求如下:
此目录的组所有权是 adminuser
adminuser 组的成员对此目录有读写和执行的权限,
除此以外的其他所有用户没有任何权限(root用户能够访问系统中的所有文件和目录)
在此目录中创建的文件,其组的所有权会自动设置为属于 adminuser 组

[root@server0 ~]# mkdir /home/admins
[root@server0 ~]# groupadd adminuser

[root@server0 ~]# chown :adminuser /home/admins/
[root@server0 ~]# ls -ld /home/admins/

[root@server0 ~]# chmod g+w,o=--- /home/admins/
[root@server0 ~]# ls -ld /home/admins/

[root@server0 ~]# chmod g+s /home/admins/
[root@server0 ~]# ls -ld /home/admins/

###########################################
ACL权限(ACL策略)
acl策略的作用
* 文档归属的局限性
任何人只属于三种角色:属主、属组、其他人
无法实现更精细的控制

acl访问策略(Linux支持)
能够对个别用户、个别组设置独立的权限
大多数挂载的EXT3/4、XFS文件系统默认已支持

++++++++++++++++++++++++++++++++++++++++++++++

[ro[root@server0 ~]# mkdir /nsd09
[root@server0 ~]# chmod o=--- /nsd09
[root@server0 ~]# ls -ld /nsd09/
drwxr-x---. 2 root root 6 3月 7 11:08 /nsd09/
[root@server0 ~]# useradd zhangsan
[root@server0 ~]# su - zhangsan
[zhangsan@server0 ~]$ cd /nsd09
-bash: cd: /nsd09: Permission denied
[zhangsan@server0 ~]$ exit

[root@server0 ~]# setfacl -m u:zhangsan:rx /nsd09 //设置ACL
[root@server0 ~]# getfacl /nsd09 //查看ACL权限

[root@server0 ~]# su - zhangsan
[zhangsan@server0 ~]$ cd /nsd09/
[zhangsan@server0 nsd09]$ pwd
[zhangsan@server0 nsd09]$ exit
logout

+++++++++++++++++++++++++++++++++++++++
使用 getfacl、setfacl 命令
getfacl 文档...
setfacl [-R] -m u:用户名:权限类别 文档...
setfacl [-R] -m g:组名:权限类别 文档...
setfacl [-R] -b 文档... #清除所有的ACL
setfacl -x u:用户名 文档... #删除指定的ACL
[-R]:递归设置ACL策略

[root@server0 ~]# mkdir /nsd10
[root@server0 ~]# setfacl -m u:tom:rwx /nsd10/
[root@server0 ~]# setfacl -m u:kenji:rx /nsd10/
[root@server0 ~]# setfacl -m u:zhangsan:rx /nsd10/
[root@server0 ~]# getfacl /nsd10

[root@server0 ~]# setfacl -x u:gelin01 /nsd10
[root@server0 ~]# getfacl /nsd10

[root@server0 ~]# setfacl -b /nsd10/
[root@server0 ~]# getfacl /nsd10

++++++++++++++++++++++++++++++++++++++
也可以单独拒绝某一人

[root@server0 ~]# mkdir /public
[root@server0 ~]# useradd tom
[root@server0 ~]# chmod ugo=rwx /public/
[root@server0 ~]# ls -ld /public/
[root@server0 ~]# setfacl -m u:tom:--- /public/
[root@server0 ~]# getfacl /public/
getfacl: Removing leading '/' from absolute path names
# file: public/
# owner: root
# group: root
user::rwx
user:tom:---
group::rwx
mask::rwx
other::rwx

####################################
案例2:配置文档的访问权限

将文件 /etc/fstab 拷贝为 /var/tmp/fstab,并调整文件 /var/tmp/fstab ,满足以下要求:
此文件的拥有者是 root
此文件属于 root 组
此文件对任何人都不可执行
用户 natasha 能够对此文件执行读和写操作
用户 harry 对此文件既不能读,也不能写
所有其他用户(当前的和将来的)能够对此文件进行读操作

[root@server0 ~]# cp /etc/fstab /var/tmp/fstab
[root@server0 ~]# ls -ld /var/tmp/fstab
-rw-r--r--. 1 root root 465 3月 10 07:03 /var/tmp/fstab
[root@server0 ~]# setfacl -m u:natasha:rw /var/tmp/fstab
[root@server0 ~]# setfacl -m u:harry:--- /var/tmp/fstab

#######################################
使用LDAP认证

网络用户:由网络中一台服务器提供用户名、密码
本地用户:/etc/passwd

作用:集中管理网络中的用户账号

什么是LDAP?
轻量级目录访问协议
Lightweight Directory Access Protocol

提供的信息包括:用户名、密码、通信录、主机名映射记录、⋯⋯

LDAP服务器:classroom.example.com

+++++++++++++++++++++++++++++++++++
案例(三)

使用系统 classroom.example.com 提供的LDAP服务
验证服务的基本DN是:dc=example,dc=com
账户信息和验证信息都是由 LDAP 提供的
连接要使用证书加密,证书可以在下面的链接下载:
http://classroom.example.com/pub/example-ca.crt
当正确完成配置后,用户 ldapuser0 应该能登录到你的系统,暂时没有主目录(需完成后续练习)
用户 ldapuser0 的密码是 password

++++++++++++++++++++++++++++++++++

客户端:虚拟机server
1、安装sssd客户端软件,与服务器端LDAP服务器沟通
[root@server0 ~]# yum -y install sssd

2、安装图形工具配置sssd软件
[root@server0 ~]# yum -y install authconfig-gtk.x86_64

3、运行authconfig-gtk
[root@server0 ~]# exit
[root@room9pc13 ~]# ssh -X root@172.25.0.11

-----------------------------------------
[root@server0 ~]# authconfig-gtk

选择LDAP
dc=example,dc=com //指定服务器域名
classroom.example.com //指定服务端主机名

√ 勾选TLS加密
使用证书加密:http://classroom.example.com/pub/example-ca.crt

选择:LDAP 密码

====>填写完后,点击“应用”
----------------------------------------

Certificate URL:htttp://classroom.example.com/pub/example-ca.crt

----------------------------------------
4、验证
[root@server0 ~]# systemctl restart sssd
[root@server0 ~]# grep ldapuser0 /etc/passwd
[root@server0 ~]# id ldapuser0
uid=1700(ldapuser0) gid=1700(ldapuser0) 组=1700(ldapuser0)

############################################################
家目录漫游

[root@server0 ~]# su - ldapuser0
su: 警告:无法更改到 /home/guests/ldapuser0 目录: 没有那个文件或目录
mkdir: cannot create directory '/home/guests': Permission denied
-bash-4.2$ exit
logout

++++++++++++++++++++++++++++++++++++++++++++++

什么是NFS?
Network File System,网络文件系统
由NFS服务器将指定的文件夹共享给客户机

NFS服务端:classroom.example.com

客户端:虚拟机server

1、查看NFS资源
[root@server0 ~]# showmount -e classroom.example.com
Export list for classroom.example.com:
/home/guests 172.25.0.0/255.255.0.0

2、访问共享文件夹,有访问点

挂载NFS共享目录
mount 服务器地址:目录路径 本地挂载点

[root@server0 ~]# mount classroom.example.com:/home/guests /mnt

[root@server0 ~]# ls /mnt/

查看:
[root@server0 ~]# su - ldapuser0
上一次登录:四 3月 7 19:00:20 CST 2019pts/0 上
su: 警告:无法更改到 /home/guests/ldapuser0 目录: 没有那个文件或目录
mkdir: cannot create directory '/home/guests': Permission denied
-bash-4.2$ exit
logout

[root@server0 ~]# umount /mnt/
[root@server0 ~]# mkdir /home/guests
[root@server0 ~]# mount classroom.example.com:/home/guests/ /home/guests
[root@server0 ~]# su - ldapuser0
[ldapuser0@server0 ~]$ pwd
/home/guests/ldapuser0

useradd 创建用户
-u -s -d -g -G
usermod 账户属性
userdel 删除用户

groupadd 创建组
gpasswd -a -d用户加到组中
groupdel 删除组
groupmod -g -n 修改组属性

echo > >>

date +%Y-%m-%d
date +%F

chronyd

tar cxzjJCPvtf

rwx
文件:
r:cat head tail
w:vim
x:

目录
r:ls
w: cp/mv/rm
x: cd

Set Gid
s

ACL
setfacl -m u:名:权限 文件
-x u:名 文
-b 文
getfacl 文件

NFS