用户身份与文件权限以及文件属性1. 用户身份1.1 UID 用户身份码,可以判断用户身份1.2 GID 用户组号码,可以判断用户加入了哪个组1.3 useradd1.4 groupadd1.5 usermod1.6 password1.7 userdel1.8 su1.9 sudo2. 文件类型3. 文件权限3.1 文件权限3.1 chmod3.2 文件的特殊权限3.3 文件归属4. 文件的隐藏属性4.1 chattr4.2 lsattr5. 文件访问控制列表5.1 setfacl5.2 getfacl
UID=0 表示为root用户
UID=1-999 表示为系统用户
UID大于1000 表示为普通用户
在Linux中,创建用户时会自动创建一个与用户名同名的基本用户组,而且这个基本用户组只有该用户一人。 如果该用户日后被归纳到其他用户组,则这个其他用户组对于该用户称之为扩展用户组
一个用户只有一个基本用户组,可以有多个扩展用户组
useradd #用于创建用户,使用该命令创建用户时,默认用户的家目录会存放在/home目录中,默认的shell解释器为/bin/bash,默认会创建一个与其同名的基本用户组。-d #指定用户的家目录-e #指定账户到期时间,格式为YYY-MM-DD-u #指定用户的UID-g #指定基本用户组-G #指定一个或多个扩展用户组-N #不创建与用户同名的基本用户组-s #指定用户的shell解释器,当用户的解释器被设置为/sbin/nologin时,则代表该用户不能登录到系统。xxxxxxxxxxgroupadd #用于创建用户组xxxxxxxxxxusermod #用于修改用户属性-c #填写用户账户的备注信息-d -m #-d -m参数连用,可重新指定用户的家目录,并自动把旧的数据迁移过去-e #指定账户到期时间-g #变更用户所属组-G #变更用户扩展组-L #锁定用户,禁止其登录-U #解锁用户,允许其登录-s #变更默认终端-u #修改用户的UIDxxxxxxxxxxpasswd #用于修改用户密码、过期时间、认证信息等-l #锁定用户,禁止其登录-u #接触锁定,允许其登录--stdin #允许通过标准输入修改其密码 echo "123456" | passwd --stdin linux-d #使该用户可用空密码登录-e #强制用户在下次登录时修改密码-S #显示用户的密码是否被锁定,以及密码所采用的的加密算法名称xxxxxxxxxxuserdel #用于删除用户-f #强制删除-r #同时删除用户及用户的家目录xxxxxxxxxxsu #用于切换用户身份# su命令后跟“-”号,表示完全切换到新用户,即把环境变量信息也变更为新用户,不保留原始用户的信息。强烈建议在切换用户时使用“-”号xxxxxxxxxxsudo #用于给普通用户提供额外权限来完成root管理员才能完成的任务visudo #使用visudo命令进入编辑模式,在第99行附近输入用户名以及权限和指定的命令,在输入命令是必须使用绝对路径 root(用户) ALL(主机)=(ALL)(切换的角色) ALL(能够执行的命令,此处为命令的绝对路径)文件类型:通过ls -l查看显示结果的第1列判断
Linux中对于文件的权限的定义为“可读(r),可写(w),可执行(x)”,并将次权限分别赋予了 文件的所有者 文件的所属组 其他人。 而且Linux对“可读(r),可写(w),可执行(x)”的权限分别进行了数字量化: 可读(r):4,表示对文件有读取查看权限 可写(w):2,表示对文件有写入编辑权限 可执行(x):1,表示对文件有执行权限。
r 表示可读(量化数字为4)
w 表示可写(量化数字为2)
x 表示可执行(量化数字为1)
rwxrwxrwx 表示文件所有者,所属组,其他用户对该文件的权限
xxxxxxxxxxchmod #用于修改文件的权限-R #对当前目录下的所有子目录和子文件进行相同权限变更chmod 777 a.txt #修改文件权限为rwxrwxrwxchmod u+x #对文件所有者添加x执行权限chmod g+x #对文件所属组添加x执行权限chmod o+x #对文件的其他人权限位添加x执行权限SUID 仅对二进制程序(命令)有效,让执行者临时拥有属主的权限
SGID 仅对二进制程序(命令)有效,让执行者临时拥有属组的权限
SBIT 可确保用户只能删除自己的文件,不能删除其他人的文件
xxxxxxxxxx-rw-------. 1 root(文件所有者) root(文件所属组) 1389 12月 28 22:24 anaconda-ks.cfgchown #修改文件的所有者或所属组-R #对当前目录下所有子目录和子文件进行相同更改chown linux a.txt #修改文件所有者为linuxchown :linux a.txt #修改文件所属组为linuxchown linux:linux a.txt #修改文件所有者和所属组为linuxchown linux.linux a.txt #修改文件所有者和所属组为linuxxxxxxxxxxxchattr #设置文件的隐藏属性i #无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容,而不能新建或删除文件a #仅允许补充(追加)内容,无法覆盖/删除内容S #文件内容在变更后立即同步到硬盘s #彻底从硬盘中删除,不可恢复(用0填充源文件所在硬盘区域)A #不再修改这个文件目录的最后访问时间b #不再修改文件或目录存取时间c #默认将文件或目录进行压缩x #可以直接访问压缩文件中的内容xxxxxxxxxxlsattr #查看文件的隐藏属性xxxxxxxxxxsetfacl #设置文件的访问控制列表-m #更改文件的ACL-k #移除默认的ACL-R #递归操作子目录setfacl -Rm u:linux:rwx /rootxxxxxxxxxxgetfacl #查询文件的acl信息#判断一个文件是否设置了ACL时,可以根据文件权限的最后一位判断,如果文件权限的最后一位是“.",则表示该文件没有设置ACL;如果文件权限的最后一位是“+”,则表示文件被设置了ACL