管理员UID为0:系统的管理员用户(也就是root用户)
系统用户UID为1~999:Linux系统默认服务程序会有独立的系统用户负责运行。
普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。
(每一个UID都是唯一,不能有,也不可能重复)
useradd [选项] 用户名 用于添加用户
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD.
-u 指定该用户的默认UID
-g 指定一个初始的用户基本组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell解释器
useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe 创建一个指定家目录位置、UID及shell解释器的用户linuxprobe(shell解释器 nologin 不能登陆系统)
groupadd [选项] 群组名 添加用户组,可以利用不同组做不同的访问策略
usermod [选项] 用户名 修改用户属性
-c 填写用户账户的备注信息
-dm 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的UID
usermod -u 8888 linuxprobe 变更用户UID
passwd [选项] [用户名] 修改用户密码
-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
userdel [选项] 用户名 删除用户
-f 强制删除用户
-r 同时删除用户及用户家目录
文件权限与归属
文件类型:
-:普通文件。
d:目录文件。
l:链接文件。
b:块设备文件。
c:字符设备文件。
p:管道文件。
访问权限:
文件只有三种执行权限分别是r(读 权限数字:4)、 w(写 权限数字:2)、 x(执行 权限数字:1)
在修改文件权限的时候,可以通过不同的数字组合赋予文件不同的文件权限,最低限制权限用数字为777 字母为rwxrwxrwx
除了这些权限,文件还有特殊权限:分别是SUID(权限数字:4)、SGID(权限数字:2)、SBIT(权限数字:1)
他们也有各自的对应权限位,会显示在文件权限位的“执行”位上,如果在最低限制权限上都有特殊权限,则表示为rwsrwsrwt,数字表示为7777(注意这里是四个7在三个7前再加一个特殊权限位)
SUID 是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。
SGID 让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。
SBIT 特殊权限位之粘滞位,用户只能对自己的所有者文件有操作权限,例如用户家目录内容一样
文件的隐藏属性:
chattr [参数] 文件 对文件设置不同权限的隐藏属性(通过普通的文件权限查看ls -l是看不到的)
+i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
+a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
+S 文件内容在变更后立即同步到硬盘(sync)
+s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
+A 不再修改这个文件或目录的最后访问时间(atime)
+b 不再修改文件或目录的存取时间
+D 检查压缩文件中的错误
+d 使用dump命令备份时忽略本文件/目录
+c 默认将文件或目录进行压缩
+u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
+t 让文件系统支持尾部合并(tail-merging)
+x 可以直接访问压缩文件中的内容
chattr +a linuxprobe 设置文件只能被补充(追加),无法被修改和删除
chattr -a linuxprobe 取消文件的隐藏a权限(就是将命令参数前变成“减号”就是取消该隐藏权限)
lsattr [参数] 文件 查看文件是否有隐藏权限
文件访问控制列表(FACL\ACL):
setfacl [参数] 文件名称 管理文件特有的ACL规则权限 (文件的访问权限后的英文 . 在增加FACL权限后会变成“+”)
-R 递归权限
-m 修改
-b 删除
setfacl -Rm u:linuxprobe:rwx /root 递归修改root目录权限,让linuxprobe用户增加rwx权限
getfacl 文件名称 查看文件的ACL权限
su和sudo权限
su 是在当前窗口切换用户
(su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-))
sudo 是让当前用户临时使用管理员权限执行命令
sudo [参数] 命令名称
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或UID值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
visudo 允许使用的主机=(以谁的身份) 可执行命令的列表
linuxprobe ALL=(ALL) ALL
linuxprobe ALL=(ALL) /usr/bin/cat
linuxprobe ALL=NOPASSWD: /usr/sbin/poweroff (添加NOPASSWD参数,使得用户执行sudo命令时不再需要密码验证)
第六章
“/”是一切的开始,系统所有,一切皆文件。
目录名称 应放置文件的内容
/boot 开机所需文件—内核、开机菜单以及所需配置文件等
/dev 以文件形式存放任何设备与接口
/etc 配置文件(包括服务配置文件)
/home 用户主目录
/bin 存放单用户模式下还可以操作的命令
/lib 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数
/sbin 开机过程中需要的命令
/media 用于挂载设备文件的目录
/opt 放置第三方的软件
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录
/tmp 任何人均可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin Linux系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也可放置共享文件
/var 主要存放经常变化的文件,如日志(variety)
/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里