依此代表:-类型 权限 1链接 root用户 root用户所在组 2229文件大小 修改日期 文件名
注:
d表示目录 -表示文件 1链接文件 b设备文件(存储接口设备) c设备文件(键盘等)
注意观察上图
文件的权限划分:文件所有者,文件所属组,其他人
rwx 分别表示读,写,执行的三个权限(没有权限 -)
第一组:rw-表示所有者拥有读写权限 (首行- 表示它是一个文件)
第二组:r-- 所属组拥有读的权限
第三组:r--其他人拥有读的权限
目录权限
r 代表可以读取该目录,可知该目录下拥有哪些文件
w 可以创建或者重命名目录,新建文件,移动该目录下的目录文件或者位置
x 表示是否可以进入该目录
关于文件权限的修改
chown 修改文件的所有者(存在该用户) chown 用户 文件/目录 -r 递归修改
chgrp 修改文件所属组(存在该组) -r递归修改
chmod 修改拥有的权限(u/g/o)
给文件123所属组增加写和执行的权限
给文件拥有着删除写的权限
给文件其他人增加写入,和执行的权限
数字法:r=4 w=2 x=1
示例,使用普通用户创建一个文件a 然后使用超级用户删除其拥有着的写入权限,分析,当我们再次使用普通用户是否可以编辑此文件a呢?
测试:依然可以写入文件
由此可知文件的拥有者即使没有拥有写入权限也可以写入内容,但是文件的所属组或者其他人则不行。
将用户加入到某组或者从某组删除gpasswd -a gpasswd -d
创建某组groupadd 查看用户所在组 groups
示例,使用超级用户创建一个目录a,更改其拥有着为普通用户wml,然后删除它全部的权限000
使用普通账户wml查看,进入该目录a
示例,在上个例子中a目录下创建三个文件b c d 然后给普通用户增加读的权限r 使用普通账户查看此目录a
可以看到有哪些文件。
增加权限执行x
尝试在该目录下创建文件e,显示权限不够
默认权限umask
第一个0表示特殊权限
002=rwx rwx -wx (2代表写入权限 这里2只没有该写入权限)
022=rwx r-x r-x
示例:使用默认权限创建文件和目录0022 目录的权限和我们预料的是一样的,但文件却少了 x 权限 这是因为在创建文件的时候,系统会自动拿走x权限。所以rw-r--r--
示例:假设我们什么权限都不拿走 umask000 ,同样创建文件a和目录b
恢复默认权限,注:没事不要随便调整默认值。
umask 0000是临时修改,永久修改需要在/etc/bashrc 修改(注:别乱动这个文件)
linux用户管理
1.etc/passwd 记录linux所有账号
早期x代表用户的登陆密码,现在放到shadow文件中,UID:0代表系统管理员 GID:0,如果我们把hxh这行1000改成0 则hxh就变成了系统管理员。0-999供系统使用 1000以上给使用者
后面则表示这个使用者的信息 /home/hxh 表示这个用户登陆所处的位置 /bin/bash 代表该用户可以使用命令行shell 如果不能使用 则显示/sbin/nologin
2.etc/shadow 记录账户对应的密码
红色对应的是加密后的密码 ::表示最近修改密码的日期 0代表可以随时修改密码(如果数值是1,则表示一天内不能修改密码) 99999表示这么多天过后用户必须修改密码
7代表被强制修改密码前7天,系统会通知用户。
3.etc/group 记录所有组
组名 组密码 组ID(GID) 附属组(组里面的用户)
添加用户useradd
-u 设置uid
-g设置主要组
-G设置附属组
-c设置用户说明
-d设置用户家目录
-s设置用户shell
-e设置用户密码失效日期
-f指定密码是否失效
usermod可以小范围的修改用户的信息
-I 修改用户名
-L 冻结账号
-U 解冻账号
注意:
当我们创建默认选项创建账户useradd 用户名 linux会默认执行以下操作:
在/etc/passwd/目录下建立相关资料
在/etc/shadow写入与密码相关的参数
在/etc/group写入和账号名一样的组
在/home创建用户的家目录
修改用户密码passwd
-l 锁住该账户
-u 解锁
-S 显示账户密码参数
-n 设置多久不需要修改密码
-x 设置多久必须修改密码
-w 密码过期前警告的天数
-i 设置密码失效的日期
示例:
chage修改账户密码相关的参数
-d 修改最后修改密码的时间
-E 修改密码失效时间
-I 设置几天后失效
-m 设置密码至少保留几天
-M 设置密码多少天后需要更新
-W 设置密码过期前警告的天数
-l 密码相关信息
示例:创建一个用户test01 初始密码为123,该用户登陆后让其修改密码,然后强制使用新密码登陆
注意命令:chage -d 0 test01 修改完成后直接su是不会起作用的,这是用户的切换,在目录中执行。
使用xshell登陆test01
更改的密码需要符合规范,不规范的后果如下:(密码应包含大写,小写,数字,字符)
示例2:创建一个用户test02,修改其最后一次修改密码的时间是2001-4-25 让这个账户在100天后强制修改密码
用户的删除 userdel
linux要彻底删除一个用户比较麻烦
删除/etc/passwd /etc/shadow里面的内容
删除etc/group /etc/gshadow
删除 /home/username /var/spool/mail/username
删除用户曾经创建过的文件(先使用find命令,然后使用userdel删除)
-r 连同家目录和邮箱一起删除
示例:已存在用户
删除用户
查看信息:
所以在删除用户的时候,加个参数 -r
文件的权限
-acl 针对单一使用者,修改单一文件或目录的权限rwx
-setfacl 配置针对单一使用者对单一文件的权限
- getfacl 获取针对单一使用者对单一文件的权限
示例:创建一个文件,然后给vml这个账户赋予rwx权限,观察 . 变成+ 说明管理员对这个文件进行acl修改
其中-u代表用户 (-g可以对组进行相关操作)
然后我们获取这个文件的权限信息,对于一般用户来说,权限是默认的,但对于vml这个用户来说拥有rwx权限
删除单个文件的acl权限 -x (-b删除所有和acl权限相关的设置)
注意上图的最大权限 mask (默认情况下,mask的权限是用户,组,其他人的权限并集)
示例设置文件的最大权限
effective指有效权限 可知组没有任何权限。也就是说mask是最大权限,假设它没有 r 权限,即使单独设置了也无效
閱讀更多 十二說IT 的文章