基本权限的类别
访问方式(权限)
读取:允许查看内容-read r
写入:允许修改内容-write w
可执行:允许运行和切换-execute x
对于文本文件
r:cat less head tail
w:vim > >>
x:Shell脚本 可以运行
对于目录
r:能够 ls 浏览此目录内容
w:能够执行 rm/mv/cp/mkdir/touch/ 等更改目录内容的操作
x:能够 cd 切换到此目录
权限适用对象(归属)
所有者:拥有此文件/目录的用户-user u
所属组:拥有此文件/目录的组-group g
其他用户:除所有者、所属组以外的用户-other o
查看权限
使用 ls -l 命令
ls -ld 文件或目录...
开头 d 为目录
开头 - 为文本文件
开头l 为快捷方式
设置基本权限
使用 chmod 命令
chmod [-R] [归属关系][+-=][权限类别] 文档...
[-R]:递归设置
设置文档归属
使用 chown 命令
chown [-R] 属主 文档...
chown [-R] :属组 文档...
chown [-R] 属主:属组 文档...
[-R]:递归设置
Linux中如何判断用户权限:
1.判断用户的角色
顺序:所有者>acl权限>所属组>其他人
2.查看相应权限位置的权限设置
Permission denied : 权限不足
command not found: 命令没有找到
附加权限(特殊权限)
Set GID
附加在属组的 x 位上
属组的权限标识会变为 s
适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组
让新增的子文档,自动继承父目录的所属组
若原来有x则是(小写)s 若没有x则是(大写)S
acl策略的作用
文档归属的局限性
任何人只属于三种角色:属主、属组、其他人
无法实现更精细的控制
acl访问策略
能够对个别用户、个别组设置独立的权限
大多数挂载的EXT3/4、XFS文件系统默认已支持
设置acl访问控制策略
使用 getfacl、setfacl 命令
getfacl 文档...
setfacl [-R] -m u:用户名:权限类别 文档...
setfacl [-R] -m g:组名:权限类别 文档...
setfacl [-R] -x u:用户名 文档.. #清除指定的ACL策略
setfacl [-R] -b 文档... #清空所有ACL策略
权限 注意事项:
0.最基本也是最容易混淆的就是文件和目录的wx权限的意义不同,需要认真理解。
1.目录的w权限是针对目录的子目录和子文件
2.如果没有父目录的x权限,下面所有的权限都没有意义,对其子目录或子文件的所有操作都无法完成(即使有子目录或子文件的操作权限)
3.如果父目录只有x权限没有r权限,说明你只能进入并按照其子目录或子文件的权限完成相应操作,却不能使用ls查看父目录下的信息
[root@server /]# ls -ld yzy/ #设置目录对其他人只有x权限
dr-xr----x. 2 root root 16 Aug 7 11:12 yzy/
[root@server /]# ls -ld yzy/txt #设置文件对其他人有读写权限
-r-x---rw-. 1 root root 20 Aug 7 11:12 yzy/txt
[yzy@server /]$ cd yzy/ #可以进入目录
[yzy@server yzy]$ ls #不能读目录信息
ls: cannot open directory .: Permission denied
[yzy@server yzy]$ echo 123 >> txt #可以修改文件
[yzy@server yzy]$ vim txt #可以查看
4.权限修改后文件的权限是即时生效,但是用户加入组后权限不会立刻生效,需要用户注销后再登陆,以实现刷新用户加入组的信息。
5.每个用户对一个文件或目录只会是一个身份角色,所有者、acl特殊权限、所属组、其他人 按顺序判断,只会成为其中一个身份。
使用LDAP认证
实现网络用户:用户集中管理,用户由LDAP服务器创建
本地用户:本地机器创建,只能用于本地登陆
网络用户:用户名、密码信息存储在 LDAP 服务端
客户端:
1.安装软件包sssd,专用于与LDAP服务端沟通的软件
yum -y install sssd
2.图形的工具authconfig-gtk ,设置sssd,指定LDAP服务端位置
yum -y install authconfig-gtk
3.重起sssd
systemctl restart sssd
systemctl enable sssd
如果不用图形工具来完成sssd服务,可以通过修改配置文件,把第二步修改为下面
yum install -y openldap-clients
echo "TLS_CACERT /etc/openldap/cacerts/example-ca.crt
TLS_REQCERT never
URI ldap://classroom.example.com/
BASE dc=example,dc=com" >> /etc/openldap/ldap.conf
下载ldap服务器的加解密文件
mkdir /etc/openldap/cacerts
cd /etc/openldap/cacerts
wget http://classroom.example.com/pub/example-ca.crt
然后在 /etc/sssd 下 写一个文件 sssd.conf
[domain/default]
autofs_provider = ldap
cache_credentials = True
krb5_realm = #
ldap_search_base = dc=example,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://IP address
ldap_id_use_start_tls = True
ldap_tls_cacertdir = /etc/openldap/cacerts/
ldap_tls_cacert = /etc/openldap/cacerts/example-ca.crt
ldap_tls_reqcert=never
[sssd]
services = nss, pam, autofs
config_file_version = 2
domains = default
[nss]
filter_users=root
filter_groupss=root
[pam]
[sudo]
[autofs]
[ssh]
家目录漫游
NFS共享
Network File System,网络文件系统
由NFS服务器将指定的文件夹共享给客户机,客户机将此共享目录 mount 到本地目录,访问此共享资源就像访问本地目录一样方便,类似于 EXT4、XFS等类型,只不过资源在网上
客户端:虚拟机Server0访问共享
1.查看服务端有哪些共享?
showmount -e ip
2.访问共享
mount ip:/刚刚查看路径 /路径
修改用户家目录并登陆
为了测试,创建一个用户
useradd harry
1.命令修改用户的家目录
usermod -d /abc harry
2.将原家目录的所有数据复制到新目录中
\cp -r /home/harry/ /abc
3.把新家目录进行赋权
chown -R harry:harry /abc
4.登陆
su - harry