Linux基础之权限的操作示例

Linux基础之权限的操作示例

依此代表:-类型 权限 1链接 root用户 root用户所在组 2229文件大小 修改日期 文件名

注:

d表示目录 -表示文件 1链接文件 b设备文件(存储接口设备) c设备文件(键盘等)

注意观察上图

文件的权限划分:文件所有者,文件所属组,其他人

rwx 分别表示读,写,执行的三个权限(没有权限 -)

第一组:rw-表示所有者拥有读写权限 (首行- 表示它是一个文件)

第二组:r-- 所属组拥有读的权限

第三组:r--其他人拥有读的权限

目录权限

r 代表可以读取该目录,可知该目录下拥有哪些文件

w 可以创建或者重命名目录,新建文件,移动该目录下的目录文件或者位置

x 表示是否可以进入该目录

关于文件权限的修改

chown 修改文件的所有者(存在该用户) chown 用户 文件/目录 -r 递归修改

Linux基础之权限的操作示例

chgrp 修改文件所属组(存在该组) -r递归修改

Linux基础之权限的操作示例

chmod 修改拥有的权限(u/g/o)

给文件123所属组增加写和执行的权限

Linux基础之权限的操作示例

给文件拥有着删除写的权限

Linux基础之权限的操作示例

给文件其他人增加写入,和执行的权限

Linux基础之权限的操作示例

数字法:r=4 w=2 x=1

Linux基础之权限的操作示例

Linux基础之权限的操作示例

示例,使用普通用户创建一个文件a 然后使用超级用户删除其拥有着的写入权限,分析,当我们再次使用普通用户是否可以编辑此文件a呢?

Linux基础之权限的操作示例

测试:依然可以写入文件

Linux基础之权限的操作示例

由此可知文件的拥有者即使没有拥有写入权限也可以写入内容,但是文件的所属组或者其他人则不行。

将用户加入到某组或者从某组删除gpasswd -a gpasswd -d

Linux基础之权限的操作示例

创建某组groupadd 查看用户所在组 groups

Linux基础之权限的操作示例

示例,使用超级用户创建一个目录a,更改其拥有着为普通用户wml,然后删除它全部的权限000

Linux基础之权限的操作示例

使用普通账户wml查看,进入该目录a

Linux基础之权限的操作示例

示例,在上个例子中a目录下创建三个文件b c d 然后给普通用户增加读的权限r 使用普通账户查看此目录a

Linux基础之权限的操作示例

Linux基础之权限的操作示例

可以看到有哪些文件。

增加权限执行x

Linux基础之权限的操作示例

尝试在该目录下创建文件e,显示权限不够

Linux基础之权限的操作示例

默认权限umask

Linux基础之权限的操作示例

第一个0表示特殊权限

002=rwx rwx -wx (2代表写入权限 这里2只没有该写入权限)

Linux基础之权限的操作示例

022=rwx r-x r-x

示例:使用默认权限创建文件和目录0022 目录的权限和我们预料的是一样的,但文件却少了 x 权限 这是因为在创建文件的时候,系统会自动拿走x权限。所以rw-r--r--

Linux基础之权限的操作示例

示例:假设我们什么权限都不拿走 umask000 ,同样创建文件a和目录b

Linux基础之权限的操作示例

恢复默认权限,注:没事不要随便调整默认值。

Linux基础之权限的操作示例

umask 0000是临时修改,永久修改需要在/etc/bashrc 修改(注:别乱动这个文件)

Linux基础之权限的操作示例

Linux基础之权限的操作示例

linux用户管理

1.etc/passwd 记录linux所有账号

Linux基础之权限的操作示例

Linux基础之权限的操作示例

Linux基础之权限的操作示例

早期x代表用户的登陆密码,现在放到shadow文件中,UID:0代表系统管理员 GID:0,如果我们把hxh这行1000改成0 则hxh就变成了系统管理员。0-999供系统使用 1000以上给使用者

后面则表示这个使用者的信息 /home/hxh 表示这个用户登陆所处的位置 /bin/bash 代表该用户可以使用命令行shell 如果不能使用 则显示/sbin/nologin

Linux基础之权限的操作示例

2.etc/shadow 记录账户对应的密码

Linux基础之权限的操作示例

红色对应的是加密后的密码 ::表示最近修改密码的日期 0代表可以随时修改密码(如果数值是1,则表示一天内不能修改密码) 99999表示这么多天过后用户必须修改密码

7代表被强制修改密码前7天,系统会通知用户。

3.etc/group 记录所有组

Linux基础之权限的操作示例

组名 组密码 组ID(GID) 附属组(组里面的用户)

添加用户useradd

-u 设置uid

-g设置主要组

-G设置附属组

-c设置用户说明

-d设置用户家目录

-s设置用户shell

-e设置用户密码失效日期

-f指定密码是否失效

usermod可以小范围的修改用户的信息

-I 修改用户名

-L 冻结账号

-U 解冻账号

注意:

当我们创建默认选项创建账户useradd 用户名 linux会默认执行以下操作:

  1. 在/etc/passwd/目录下建立相关资料

  2. 在/etc/shadow写入与密码相关的参数

  3. 在/etc/group写入和账号名一样的组

  4. 在/home创建用户的家目录

修改用户密码passwd

-l 锁住该账户

-u 解锁

-S 显示账户密码参数

-n 设置多久不需要修改密码

-x 设置多久必须修改密码

-w 密码过期前警告的天数

-i 设置密码失效的日期

示例:

Linux基础之权限的操作示例

Linux基础之权限的操作示例

chage修改账户密码相关的参数

-d 修改最后修改密码的时间

-E 修改密码失效时间

-I 设置几天后失效

-m 设置密码至少保留几天

-M 设置密码多少天后需要更新

-W 设置密码过期前警告的天数

-l 密码相关信息

Linux基础之权限的操作示例

示例:创建一个用户test01 初始密码为123,该用户登陆后让其修改密码,然后强制使用新密码登陆

注意命令:chage -d 0 test01 修改完成后直接su是不会起作用的,这是用户的切换,在目录中执行。

Linux基础之权限的操作示例

使用xshell登陆test01

Linux基础之权限的操作示例

Linux基础之权限的操作示例

更改的密码需要符合规范,不规范的后果如下:(密码应包含大写,小写,数字,字符)

Linux基础之权限的操作示例

示例2:创建一个用户test02,修改其最后一次修改密码的时间是2001-4-25 让这个账户在100天后强制修改密码

Linux基础之权限的操作示例

Linux基础之权限的操作示例

用户的删除 userdel

linux要彻底删除一个用户比较麻烦

  1. 删除/etc/passwd /etc/shadow里面的内容

  2. 删除etc/group /etc/gshadow

  3. 删除 /home/username /var/spool/mail/username

  4. 删除用户曾经创建过的文件(先使用find命令,然后使用userdel删除)

-r 连同家目录和邮箱一起删除

示例:已存在用户

Linux基础之权限的操作示例

删除用户

Linux基础之权限的操作示例

查看信息:

Linux基础之权限的操作示例

Linux基础之权限的操作示例

Linux基础之权限的操作示例

所以在删除用户的时候,加个参数 -r

文件的权限

-acl 针对单一使用者,修改单一文件或目录的权限rwx

-setfacl 配置针对单一使用者对单一文件的权限

- getfacl 获取针对单一使用者对单一文件的权限

示例:创建一个文件,然后给vml这个账户赋予rwx权限,观察 . 变成+ 说明管理员对这个文件进行acl修改

其中-u代表用户 (-g可以对组进行相关操作)

Linux基础之权限的操作示例

然后我们获取这个文件的权限信息,对于一般用户来说,权限是默认的,但对于vml这个用户来说拥有rwx权限

Linux基础之权限的操作示例

删除单个文件的acl权限 -x (-b删除所有和acl权限相关的设置)

Linux基础之权限的操作示例

注意上图的最大权限 mask (默认情况下,mask的权限是用户,组,其他人的权限并集)

示例设置文件的最大权限

Linux基础之权限的操作示例

effective指有效权限 可知组没有任何权限。也就是说mask是最大权限,假设它没有 r 权限,即使单独设置了也无效


分享到:


相關文章: