6Linux用户身份与文件权限

3类用户身份:

(1)管理员UID为0,root

(2)系统用户UID为1-999;nologin不能登录系统,老版本5、6中是1-499

(3)普通用户UID为1000开始,老版本5、6中是1000-65535

UID是不能冲突的,管理员创建的普通用户UID默认是从1000开始,即使前面有闲置的号码

常用命令:

(1)useradd 参数 用户名,创建用户

-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD.
-u 指定该用户的默认UID
-g 指定一个初始的用户基本组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell解释器

(2)id 用户名,查看用户信息

(3)groupadd 选项 群组名;创建用户组

(4)usermod 选项 用户名;修改用户是的属性

-g 变更所属用户组
-G 变更扩展用户组
-u 修改用户的UID

如:将用户linuxprobe加入到root用户组中,这样扩展组列表中则会出现root用户组的字样,而基本组不会受到影响
usermod -G root linuxprobe
usermod -G root linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

如:用-u参数修改linuxprobe用户的UID号码值。除此之外,我们还可以用-g参数修改用户的基本组ID,用-G参数修改用户扩展组ID
usermod -u 8888 linuxprobe
id linuxprobe
uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

/etc/group  用户、用户组信息从这里面可以删除

(5)passwd 用户名,修改密码

--stdin 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username

  ls -l /etc/shadow  权限,密码保存文件

(6)userdel 选项 用户名,删除用户

-f 强制删除用户
-r 同时删除用户及用户家目录

文件权限与归属

在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分,常见的字符如下所示。

-:普通文件。
d:目录文件。
l:链接文件。
b:块设备文件。
c:字符设备文件。
p:管道文件。

一般文件:

对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。

目录文件:

对目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。

文件的读、写、执行权限可以简写为rwx,亦可分别用数字4、2、1来表示,文件所有者,所属组及其他用户权限之间无关联,如表

                                                                          占用磁盘大小    修改时间

chmod 权限 文件名称

chown 用户名:用户组 文件名

chmod和chown命令是用于修改文件属性和权限的最常用命令,它们还有一个特别的共性,就是针对目录进行操作时需要加上大写参数-R来表示递归操作,即对目录内所有的文件进行整体操作。

文件特殊权限:

SUID:chmod u+s 文件名;让命令的执行者临时后去到了所有者的身份

SGID:chmod g+s 文件名;让执行者临时拥有属组的权限

SBIT: chomd o+t 文件名;让目录内的文件只能被文件所有者删除;将Sticky Bit直译成了“粘滞位”或“保护位”

数字法对应:

SUID:4

SGID:2

SBIT: 1

文件的隐藏属性

lsattr 文件名;查看隐藏权限

chattr +权限 文件

          -权限 文件

文件访问控制列表:facl

setfacl 设置;file access control list =facl

使用-R递归参数;-m修改参数;如果想要删除某个文件的ACL,则可以使用-b参数,用户是u: 组是g:
setfacl -Rm u:linuxprobe:rwx /root

getfacl 查看;

su

su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户下,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)

当从root管理员切换到普通用户时是不需要密码验证的,而从普通用户切换成root管理员就需要进行密码验证了;这也是一个必要的安全检查

sudo

命令具有如下功能:

限制用户执行指定的命令:
记录用户执行的每一条命令;
配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
验证密码的后5分钟内(默认值)无须再让用户再次验证密码

如果担心直接修改配置文件会出现问题,则可以使用sudo命令提供的visudo命令来配置用户权限。这条命令在配置用户权限时将禁止多个用户同时修改sudoers配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。

只有root管理员才可以使用visudo命令编辑sudo服务的配置文件
使用visudo命令配置sudo命令的配置文件时,其操作方法与Vim编辑器中用到的方法一致,因此在编写完成后记得在末行模式下保存并退出。在sudo命令的配置文件中,按照下面的格式将第99行(大约)填写上指定的信息:

谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表

[root@linuxprobe ~]# visudo
 96 ##
 97 ## Allow root to run any commands anywhere
 98 root ALL=(ALL) ALL
 99 linuxprobe ALL=(ALL) ALL

99 linuxprobe ALL=(ALL) /usr/bin/cat,/usr/binreboot  ,号作间隔

每次执行sudo命令都要输入一次密码其实也挺麻烦的,这时可以添加NOPASSWD参数,使得用户执行sudo命令时不再需要密码验证

99 linuxprobe ALL=NOPASSWD: /usr/sbin/poweroff

 
原文地址:https://www.cnblogs.com/biglu/p/10580930.html