权限和用户管理

1文件基本权限 3

1.1基本权限修改 3

1.2权限的作用 4

1.2.1权限对文件的作用 4

1.2.2权限对目录的作用 4

1.3其他权限命令 5

2文件默认权限 5

3 文件的特殊权限 6

3.1ACL权限 6

3.1.1ACL权限简介与开启 6

3.1.2 临时开启分区ACL权限 6

3.1.3 永久开启分区ACL权限 6

3.1.4查看ACL权限 6

3.1.5设定ACL权限 6

3.1.6 ACL最大有效权限 7

3.1.7删除ACL权限 7

3.1.8递归ACL权限 7

3.1.9默认ACL权限 7

4 sudo权限 7

4.1作用 7

4.2 sudo使用 8

5 文件特殊权限 8

5.1 SetUID 8

5.1.1 SetUID针对文件的作用 8

5.1.2举例 8

5.1.3 设定SUID的方法 8

5.1.4 取消SUID的方法 8

5.1.5 危险的SetUID 9

5.2 SetGID 9

5.2.1 SetGID针对文件的作用 9

5.2.2 SetGID针对目录的作用 9

5.2.3 设定SGID的方法 9

5.2.4 取消SGID的方法 9

5.3 Sticky BIT 9

5.2.1 SBIT粘着位针对目录的作用 9

5.3.2 设定 SBIT粘着位的方法 9

5.3.3 取消 SBIT粘着位的方法 10

6 不可改变位权限 10

6.1 Chattr命令格式 10

6.2查看文件系统属性 10

用户管理 10

用户和用户组配置文件 11

用户组基本管理命令 11

添加用户组groupadd sexy 11

用户基本管理命令 11

主要组与附属组 13

其他命令 14

 

1文件基本权限

1.1基本权限修改

 1.1.1认识

-rw-r--r-- 文件权限只有9位,文件类型不是文件权限

文件类型(1位)+属主权限(3位)+属组权限(3位)+其他用户权限(3位)

-文件类型:d(directory目录文件)、

          -(普通文件)、

          l(link符号链接文件)、

          b(block块设备文件)、

          c(char字符设备文件)、

          p(pipe管道文件)、

          s(socket管道文件)。

rw-属主权限u:文件所有者权限,可认为是文件创建者权限

r--属组权限g:文件所有者所在组权限,可认为是同组用户权限

r--其他用户权限o:非同组用户权限

1.1.2修改

chmod [选项] 模式 文件名

选项

  -R  递归,若当前为目录,则目录下的子文件都是该修改权限

模式

  [ugoa][+ | - | =][rwx]

  [mode=421]

  1. [ugoa]

u 表示“用户(user)”,即文件或目录的所有者。

g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

o 表示“其他(others)用户”。

a 表示“所有(all)用户”。它是系统默认值。 

  1. [+ | - | =]操作符号可以是:

+ 添加某个权限。

- 取消某个权限。

= 赋予给定权限并取消其他所有权限(如果有的话)。

  1. [rwx]权限:r:4,w:2,x:1,其顺序是(u)(g)(o),是用二进制表示的,权限从大到小777  644 755 而467一般不存在。
  2. [mode=421]如果想让某个文件的属主有“读/写”二种限,需要把4(可读)+2(可写)=6(读/写)。

7:rwx、全部权限

6:rw-、读与写

5:r-x、

4:r--、只读

3:-wx、

2:-w-、只写

1:--x、执行或切换权限

0:---

ll filename  //查看文件权限

1.2权限的作用

1.2.1权限对文件的作用

  1. r:读取文件内容(cat  more  head  tail)

   Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用命令

cat命令:

  1. 一次显示整个文件 -----cat filename

2.创建新文件,不能 编辑已有文件 -----cat > filename

3.将几个文件合并为一个文件 -----cat file1 file2 > file

more命令:分屏显示文件内容,每次只显示一屏,只允许向前浏览。 

less命令与more相似,并且支持向前,向后浏览。 

Head命令:tail -n 文件名——只显示文件头几行内容。

Tail命令:head -n 文件名——只显示文件尾部几行内容

  1. W:编辑、新增、修改文件内容(vi  echo)不包括删除文件

touch filename  //新建文件

ll filename  //查看文件权限

Echo content>> filename //向文件末尾追加内容

  对文件有写权限表示可以编辑、新增、修改、删除文件的内容,文件是存放在上一级目录的内容,只有上一级目录具有写权限,该文件才能被删除。只能修改下一级内容

  1. X:可执行,可以运行文件

1.2.2权限对目录的作用

  1. r:可以查询目录下文件名(ls)
  2. W:具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切(touch rm mv cp)

#mkdir  //创建目录

#rmdir  //删除目录

#cp  //文件复制

-r 递归处理,将指定目录下的文件与子目录一并处理

-v 或 --verbose 显示执行过程

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

mv//文件移动

#rm [选项] dirs //删除文件或目录

选项:

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;  

-f:强制删除文件或目录询问用户;  

-i:删除已有文件或目录之前先询问用户;  

-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;  

--preserve-root:不对根目录进行递归操作;

v:显示指令的详细执行过程。 

  1. X:可以进入目录(cd)

注意:对文件来说最高权限是执行,对目录来说最高权限是写,目录的合法权限0 5(rx) 7(rwx)

1.3其他权限命令

chown://给文件赋予拥有权的。 

当需要给其他用户赋予7权限,只需要改变拥有者

chown 拥有者 文件名

chown test filepath  //改变所有者,修改file1的拥有者为test

chown root:root  filepath  //同时改变所有者,所属组修改file1的拥有者为test

Chgrp 组名 文件名

chgrp user filepath  //改变所属组,修改file1的拥有组为user,

分配权限的核心原则是,在尽量小的权限范围内满足要求

 

2文件默认权限

文件默认权限是指建立文件后存在的权限,

文件不能建立为执行文件,必须手工赋予执行权限,所以文价默认权限最大为666,建立文件之后的默认权限,为666减去umask的值,

目录的默认权限最大为777,建立文件之后的默认权限,为777减去umask的值。

默认权限需要换算成字母再相减,。

umask:查看默认权限

0022:

  第一位0:文件的特殊权限

  022:文件默认权限

修改umask值

临时修改——umask 0002

永久修改——vi  /etc/profile

 

usermod(选项)(参数):

参数若为两个,顺序一般为  usermod (选项)  目标参数  原始参数

-c<备注>:修改用户帐号的备注文字;

-d<登入目录>:修改用户登入时的目录;

-e<有效期限>:修改帐号的有效期限;

-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;

-g<群组>:修改用户所属的群组;

-G<群组>;修改用户所属的附加群组;

-l<帐号名称>:修改用户帐号名称;

-L:锁定用户密码,使密码无效;

-s:修改用户登入后所使用的shell;

-u:修改用户ID;

-U:解除密码锁定。

usermod -l viv vivek   //vivek希望将他的login ID从vivek改为viv

3 文件的特殊权限

3.1ACL权限

3.1.1ACL权限简介与开启

解决问题:属主权限属组权限其他用户权限过于简单,导致其他权限无法开启给某个用户,解决用户身份不足

#dumpe2fs -h /dev/sda5  

//dumpe2fs命令是查询指定分区详细文件系统信息的命令,是否支持ACL

//选项-h 表示仅显示超级块中的信息,而不显示磁盘块组的详细信息

3.1.2 临时开启分区ACL权限

#mount -o remount,acl  /

//重新挂载根分区,并挂载加入acl权限

3.1.3 永久开启分区ACL权限

#vi   /etc/fstab

//写配置文件,加入acl

//UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4  defaults, acl   1  1

#mount -o remount  /

//重新挂载文件系统或重新启动系统,使修改生效

3.1.4查看ACL权限

#getfacl  文件名

3.1.5设定ACL权限

#setfacl 选项 文件名

选项:

-m:设定ACL权限

-x:删除指定的ACL权限

-b:删除所有的ACL权限

-d:设定默认的ACL权限

-k:删除默认的ACL权限

-r:递归设定ACL权限

操作:

#useradd tony   //添加用户

#groupadd stu  //添加组

#mkdir   /av  //创建目录

#chown tony:stu  /av

#chmod 770  /av

#useradd lw

#setfacl -m u:lw:rx  /av  //给用户stfuyu 分配r-x权限,使用“u:用户名:权限”格式

#groupadd  tgroup

#gSetfacl -m g:tgroup:rwx  /av  //给组tgroup分配 rwx权限,使用“g:组名:权限”格式

ll  //查看文件权限

#getfacl   /av  //查看某个文件的具体权限

输出结果:file:av

          Owner:tony

          Group:stu

          User::rwx

          User:lw:r-x  //为lw赋予了权限

          Group::rwx

          Mask::rwx

          Other::--

3.1.6 ACL最大有效权限

Mask是用来指定最大有效权限的,如果我给用户赋予了ACL权限,是需要和mask的权限相与操作才能得到用户的真正权限。

上述getfacl 输出结果中mask,就是最大有效权限

一般mask权限是最大的,但也可以修改

#setfacl -m  m:rx  /av  //给mask分配 rx权限,使用“m:权限”格式

 

3.1.7删除ACL权限

#setfacl -x u:用户名 文件名 //删除指定用户的ACL权限

#setfacl -x g:组名 文件名 //删除指定用户组的ACL权限

#setfacl -b 文件名 //删除文件的所有ACL权限

 

3.1.8递归ACL权限

递归是父目录在设定ACL权限时,所有的已经存在的子文件和子目录也会拥有相同的ACL权限。注意在ACL权限之后建立的新文件不再具有父目录所设定的ACL权限

#setfacl -m  u:用户名 -R 目录名

当使用递归时,给目录赋予执行权限,目录下的文件也会具有执行权限,造成权限溢出。

3.1.9默认ACL权限

默认ACL权限的作用是给父目录设定了默认ACL权限,那么父目录所有新建的子文件都会继承父目录的ACL权限

#setfacl  -m  d:u:用户名:权限   目录名

 

4 sudo权限

4.1作用

把本来只能超级用户执行的命令赋予普通用户执行

sudo的操作对象是系统命令

4.2 sudo使用

命令: #vi sudo  //实际修改的是/etc/sudoers文件

文件内容中:

 Root                 ALL=(ALL)                 ALL

用户名  被管理主机的地址=(可使用的身份)  授权命令(绝对路径)

%wheel                 ALL=(ALL)                 ALL

组名    被管理主机的地址=(可使用的身份)  授权命令(绝对路径)

可使用的身份可以省略,省略后默认是root权限

授权的命令越详细,普通用户所获得的权限越具体越小,授权的命令越简单,普通用户所获得的权限越大。

5 文件特殊权限

注意:特殊权限尽量少修改

5.1 SetUID 

5.1.1 SetUID针对文件的作用

  1. 只有可执行二进制程序才能设定SUID权限
  2. 命令执行者要对该程序拥有x(执行)权限
  3. 命令执行者在执行该程序时后的该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
  4. SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

5.1.2举例

passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码

ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 2月 22  2012 /usr/bin/passwd

cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容

ll  /bin/cat

-rwxr-xr-x. 1 root root 47976  6月 22  2012  /bin/cat

5.1.3 设定SUID的方法

4代表SUID

#chmod 4755 文件名

#chmod u+s 文件名

5.1.4 取消SUID的方法

#chmod 0755 文件名

#chmod u-s 文件名

5.1.5 危险的SetUID

  1. 关键目录应严格控制写权限。比如“/”、“/usr”等
  2. 用户的密码设置要严格遵守密码三原则
  3. 对系统中默认应该具有SetUID权限的文件作一列表,定时检测有没有这之外的文件被设置了SetUID权限。

5.2 SetGID

5.2.1 SetGID针对文件的作用

  1. 只有可执行的二进制文件才能设置SGID权限
  2. 命令执行者要对该程序拥有x(执行)权限
  3. 命令执行者在执行该程序时,组身份升级为该程序文件的属组
  4. SetGID权限只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效

5.2.2 SetGID针对目录的作用

  1. 普通用户对此目录拥有r和X权限,才能进入此目录
  2. 普通用户在此目录中的有效组会变成此目录的属组
  3. 若普通用户对此目录拥有W权限,新建的文件的默认属组是这个目录的属组

5.2.3 设定SGID的方法

2代表SGID

#chmod 2755 文件名

#chmod g+s 文件名

5.2.4 取消SGID的方法

#chmod 0755 文件名

#chmod g-s 文件名

5.3 Sticky BIT

5.2.1 SBIT粘着位针对目录的作用

  1. 普通用户对此目录拥有W、R和X权限,最高权限7,即普通用户可以在此目录拥有写入权限。
  2. 如果没有粘着位,因为普通用户拥有W权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有W权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。

5.3.2 设定 SBIT粘着位的方法

1代表 SBIT粘着位

#chmod 1755 目录名

#chmod g+t 目录名

5.3.3 取消 SBIT粘着位的方法

#chmod 0755 目录名

#chmod 0-t 目录名

 

6 不可改变位权限

6.1 Chattr命令格式

#chattr  [ + - = ]  [选项]   文件或目录名

+:增加权限

-:删除权限

=:赋予权限

选项

i(insert):

如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据(实际上文件被锁定);

如果对目录设置i属性,那么只能修改目录下文件数据,但不允许建立和删除文件。

a(append):

如果对文件设置a属性,那么只能对文件添加数据(只能用输出重定向echo命令,不可以用vi编辑文件),不能删除和修改数据;

如果对目录设置a属性,那么只能建立和修改目录下文件,但不允许删除文件。

6.2查看文件系统属性

 #lsattr  [选项] 文件名

选项

-a:显示所有文件和目录

-d:若目标是目录,仅列出目录本身属性名而不是子文件的

 

 

其他

Pam 密码验证

selinux

 

 

用户管理

用户和用户组

用户和用户组配置文件

超级用户的组编号是0

用户组基本管理命令

添加用户组groupadd sexy

修改用户组的名字为market

为market用户组设定编号668

添加一个名为boss的用户组,并设定编号888

删除market用户组

用户基本管理命令

添加一个用户组

向用户组添加用户

选项:

-p 设定帐号的密码

-g 指定用户组,没有指定用户组会自动创建一个和用户名相同的用户组

-d 指定用户的主目录

-m 自动建立用户的主目录

-M 不要自动建立用户的主目录

修改用户

选项:

-c 添加注释

-1 修改用户名

-d 指定用户的主目录

-g修改用户所属的而用户组为sexy,主要组

 

删除用户(-r 删除用户账号及账号下文件)

禁止普通用户登录(文件nologin的内容无关)

用户密码

-1 锁定账号

-d 使用户密码无效,实现无密码登录

-u 解锁账号

 

如何锁定一个Linux用户账号?

答: (1)usermod -L user1

  1. 或者更改登陆shell,usermod -s /sbin/nologin user1
  2. passwd-L user1
  3. 或者在/etc/passwd文件中,将含有该用户的文件行注释掉(使用 * )

主要组与附属组

将cls添加到boss用户组,boss作为附属组(-a)

将cls从boss用户组去掉(-d)

 

添加主要组group1.添加附属组group2,用逗号隔开添加多个附属组

切换用户组

默认创建的文件属于主要组,需要切换到附属组才能创建属于附属组的文件

首先用户要登录虚拟机,然后使用

#newgrp 附属组名——//命令切换到附属组

普通用户切换到别的附属组时,有些附属组需要用户输入组密码

超级用户不需要密码

 

为用户组设置组密码

切换用户

如果su后面不加内容表示切换到root用户,需要root用户密码。普通用户切换到其他普通用户需要密码,root用户切换到其他普通用户不需要密码

其他命令

 

 

猜你喜欢

转载自blog.csdn.net/weixin_42415578/article/details/85222738
今日推荐