美文网首页
《Linux就该这么学(第二版)》笔记-权限管理

《Linux就该这么学(第二版)》笔记-权限管理

作者: Yayamia | 来源:发表于2022-02-11 16:44 被阅读0次

用户管理

Linux的管理员=root ? WRONG!!
Linux的管理员之所以是root,并不是因为它的名字叫root,而是因为该用户的身份号码(UID)的数值是0

Linux的用户

  • 管理员:UID=0
  • 系统用户:UID=1~999(Linux系统为了避免某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围)
  • 普通用户:UID=1000~

管理员创建的普通用户的UID默认是从1000开始的(即使前面有闲置的号码)
用户组:GID 方便为组中的用户统一规划权限或指定任务 用groupadd命令

useradd命令

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

如:

useradd -d /home/linux -u 8888 -s /sbin/nologin username

/sbin/nologin为终端解释器中的一员,与Bash解释器有天壤之别。一旦用户的解释器被设置为nologin,则代表该用户不能登录到系统中

usermod命令

用于修改用户的属性
格式:usermod [选项] 用户名

用户的信息都保存在/etc/passwd中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用usermod命令修改已经创建的用户信息
-c 填写用户账户的备注信息
-d -m:参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e:用户到期时间,格式为YYYY-MM-DD
-g:变更所属用户组
-G:变更扩展用户组
-L:锁定用户禁止其登录系统
-U:解锁用户,允许其登录系统
-s:变更默认终端
-u:修改用户的UID

usermod -G root username#将username加入root用户组中

passwd命令

格式:passwd[选项] [用户名]
普通用户只能修改自己的密码
root可以修改其他所有人的密码,并且不需要炎症旧密码
-l 锁定用户,禁止其登录
-u 接触锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码

echo "New Password" | passwd --stdin Username

-d 使该用户可用空密码登录系统
-e 强直用户在下次登录是修改密码
-S 显示用户的密码是否被锁定,以及密码锁采用的加密算法名称

userdel命令

用于删除用户,在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-r参数将其删除。
-f 强制删除用户
-r 同时删除用户及用户家目录

文件权限

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

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

读-read-r-4
写-write-w-2
执行-excute-x-1

对于文件,权限容易理解
对于目录文件:

  • 可读:表示能够读取目录内的文件列表
  • 可写:表示能够在目录内新增、删除、重命名文件
  • 可执行:表示能够进入该目录

文件权限的数值法表示计入rwx的权限计算而来。例如某个文件的权限为7则表示4+2+1(可读、可写、可执行),若权限为6则表示可读可写

文件权限分配:文件所有者-文件所属组-其他用户

rwxrw-r--=764,也就是文件所有者可读可写可执行,文件所属组可读可写,其他用户可读

一个文件的信息:
-rw-r--r-- 1 root root
第一个-:为文件类型,即普通文件
rw-:文件所有者可读可写
r--:文件所属组可读
r--:其他人可读
第一个root:表示属主
第二个root:表示属组

文件的特殊权限

  • SUID:是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)
  • SGID:①让执行者临时拥有所属组的权限(对拥有执行权限的二进制程序进行设置);②在某个目录中创建的文件自动继承该目录的用户组(只可对目录进行设置)
  • SBIT:确保用户只能删除自己的文件,而不能删除其他用户的文件
    chmod -R o+t linux

RHEL 7 系统中的/tmp作为一个共享文件的目录,默认已经设置了SBIT特殊权限位,除非是该目录的所有者,否则无法删除这里的文件

两个和权限相关的命令
chmod
可用于是指文件或目录的权限
格式:chmod [参数] 权限 文件或目录名称
如 chmod 760 test.txt

(base) myh@practice:~$ vim shscript.sh
(base) myh@practice:~$ cat shscript.sh 
echo "successfully executed"
(base) myh@practice:~$ ls -l shscript.sh 
-rw-rw-r-- 1 myh myh 29 Jan 23 12:43 shscript.sh
(base) myh@practice:~$ ./shscript.sh
-bash: ./shscript.sh: Permission denied
(base) myh@practice:~$ chmod +x shscript.sh 
(base) myh@practice:~$ ./shscript.sh 
successfully executed

chown
可以设置文件或目录的所有者或所属组
格式:chown [参数] 所有者:所属组 文件或目录名称

chmod和chown在针对目录时需要加上大写参数-R来表示递归操作,即对目录内所有的文件进行整体操作

Linux中文件的权限除了一般权限和特殊权限外,还有一种隐藏权限,即被隐藏起来的权限。
chattr
用于设置文件的隐藏权限
格式:chattr [参数] 文件
如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要“-参数”
i 无法对文件进行修改,若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A 不再修改这个文件或目录的最后访问时间
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并
X 可以直接访问压缩文件中的内容

su命令和sudo服务
su - dell
su命令与用户名之间增加一个-,意味着完全切换的新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。
sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务。
sudo [参数] 命令名称
-l 列出当前用户可执行的命令
-u 用户名或UID值 以指定用户身份执行命令
-k 清空密码的有效时间,下次执行sudo命令时需要再次进行密码验证
-b 在后台执行指定的命令
-p 询问更改密码的提示语

相关文章

网友评论

      本文标题:《Linux就该这么学(第二版)》笔记-权限管理

      本文链接:https://www.haomeiwen.com/subject/thauhrtx.html