目录(持续更新)
基础-第0章-安装
基础-第1章-基本操作
基础-第2章-磁盘及文件系统管理
基础-第3章-获得帮助
基础-第4章-用户及权限基础
基础-第5章-网络基本配置
基础-第6章-管道,重定向及文本处理
基础-第7章-系统启动详解
进阶-第1章-日志服务
进阶-第2章-DNS域名服务器
进阶-第3章-FTP文件共享服务
进阶-第4章-NFS文件共享服务
进阶-第5章-SMB文件共享服务
进阶-第6章-WEB服务Apache篇
进阶-第7章-电子邮件服务
进阶-第8章-Linux服务基础及管理
高级-第1章-LVM逻辑卷
高级-第2章-高级权限ACL
高级-第3章-RAID提升速度及冗余
高级-第4章-高级网络-网卡绑定,子端口
高级-第5章-SELinux安全系统基础
高级-第6章-IPTable防火墙基础
高级-第7章-Linux远程管理-SSH、VNC
第4章 用户及权限基础
第一节 linux用户基础
-
用户,组
当我们用linux是需要一个用户的身份登入,
一个进程也需要一个用户的身份运行,
希望根据用户来限制使用或者进程可使用的资源 -
组用来方便组织管理用户
每个用户拥有一个userID,操作系统实际使用的是用户ID,而非用户名 每个用户属于一个主组,属于一个或多个附属组 每个组拥有一个GroupID 每个进程以一个用户身份运行,并受到该用户可访问的资源限制 每个可登陆用户拥有一个指定的shell
-
用户
用户ID为32位 从0开始,但是为了和老系统兼容 ID限制在60000一下 root用户(ID为0的用户就是root用户) 系统用户(1~499)为了进程服务创建的 没有shell 普通用户(500个以上) 系统中的文件都有一个所属用户及所属组 使用id命令可以显示当前用户的信息 使用passwd命令可以显示当前用户的信息
-
相关文件
/etc/passwd 保存用户信息 /etc/shadow 保存用户密码,加密的 /etc/group 保存组信息 passwd文件中 7个部分每个都用:隔开 第一个是用户名 第二个是密码x 表示保存在shadow当中 第三个是用户ID号 第四个是组ID 第五个是用户的描述信息 可能为空 第六个是用户家目录信息 第七个是用户登录的shell 1-499用户使用sbin中的nologing shadow文件中 每个部分都用:隔开 第一个是用户名 第二个是密码 !!为用户没有创建密码 或加密后密码 $ 分割 加密类型 加密加入 group文件中 每个部分都用:隔开 第一个是用户名 第二个是组密码 早期换组用 第三个是用户ID号
-
查看登录的用户
命令whoami显示当前用户 命令who显示有哪些用户已经登录系统 命令w显示有哪些用户已经登录并且在干什么
-
创建一个用户
命令useradd用来创建用户 useradd 用户名 这个命令会执行以下操作 在/etc/passwd中添加用户信息 如果使用passwd命令创建密码 则将密码加密保存在/etc/shadow 为用户建立一个新的家目录/home/用户名 将/etc/skel中的文件复制到家目录 建立一个与用户用户名相同的组 并且新建用户默认属于这个组 useradd支持的参数 -d 指定家目录 -s 登录shell -u userID -g 主族 -G 附属组(最多31个,用“,”分割) 也可以通过直接修改/etc/passwd的方式实现,
-
修改用户信息
命令usermod用来修改用户信息 usermod 参数 username 命令usermod支持一下参数 -l 新用户名 -u 新userid -d 用户家目录位置 -g 用户所属主组 -G 用户所属附属组 -L 锁定用户使其不能登录 -U 解锁用户
-
删除用户
命令userdel用来删除指定用户 userdel 用户名 但保留用户家目录 userdel -r 用户名 同时删除用户的家目录
-
组
用过部门职能和地理创建组每个组都有一个ID 组信息保存在/etc/group 每个用户有一个主组 最多可以有31个附属组
-
创建删除修改组
命令groupadd用来创建组 groupadd 组名 命令groupmod用来修改组信息 groupmod -n 新组名 旧组名 groupmod -g 新组ID 旧组ID 命令groupdel用以删除组 groupdel 组名
第二节 linux权限机制
-
权限
权限是操作系统用来限制对资源访问的机制,权限一般分为 读 写 执行
每个文件都拥有特定的权限 有所属用户和组
每个进程都是以用户身份来运行 -
linux三种权限
读r 可读取文件的内容 可可列出目录内容 写w 可以修改文件内容 可在目录中创建删除文件 执行x 可以作为命令执行 可访问目录内容 目录必须有X权限,否则无法查看其内容
-
UGO模型
linux的权限基于UGO模型进行控制 U代表User,G代表Group,O代表Other 每个文件的权限基于UGO进行设置 权限三个一组rwx,对应UGO分别设置 每个文件拥有一个所属用户和所属组,对应UG, 不属于该文件所属用户据或者所属组的使用O权限 命令 ls -l 可以查看当前目录下文件的详细信息 drwx-xr-- 2 sky testing 208 Oct 2 14:03 linux drwx-xr-- 表示UGO 2 表示连接数量 sky 表示所属用户 testing 表示所属组 208 大小 Oct 2 14:03 建立时间 linux 文件名 d为文件类型 rwx 为U用户权限 r-x 为G组权限 r-- 为其他权限
-
修改文件所属用户和组
命令chown用来改变文件的所属用户 chown 用户名 要修改的文件名 -R 参数递归的修改目录下所有文件的所属用户 命令chgrp用来改变文件的所属组 chgrp 组名 要修改的文件名 -R 参数递归的修改目录下所有文件的所属组
-
修改权限
命令chmod用来修改文件的权限 chmod 模式 文件 模式为如下格式: u g o 分别代表用户,组和其他 a可以代指ugo + - 代表加入或者删除对应权限 r w x 代表三种权限 模式示例 chmod u+rw linux 要修改所属用户权限 加入rw权限 chmod g-x linux 为组删掉X权限 chmod go+r linux 为组和其他加上r权限 chmod a-x linux 为所有组删掉X权限 -R可以递归修改目录下所有文件权限 也可以用数字的方式修改权限 r=4 2^2 w=2 2^1 x=1 2^0 使用数字权限表示 rw = 4+2 = 6 rwx = 4+2+1 = 7 所以以数字修改要三个都修改
第三节 linxu默认权限 特殊权限
-
默认权限
每个终端都有 umask 属性 来确定文件默认权限 umask可查看 umask使用数字权限表示 (后三位) 如 022 777 目录的默认权限是 777 - umask 文件的默认权限是 666-umask 普通用户的默认umask是 002 root用户的默认umask是 022
-
特殊权限
umask的第一位 三个特殊权限 suid 以文件命令的所属用户身份执行 对目录无影响 而非执行文件的用户 sgid 以文件所属组身份执行 在该目录中创建的任意性文件所属组与该目录的所属组相同 所有子文件都继承目录的组 sticky 对文件无影响 对目录拥有写入权限的用户仅可以删除其拥有的文件 无法删除其他用户文件
-
设置特殊权限
设置suid chmod u+s linux 设置sgid chmod g+s linux 设置sticky chmod o+t linux 和普通权限一样,特殊权限也可以使用数字方式表示 - SUID = 4 - SGID = 2 - STICKY = 1 所以我们可以通过以下命令设置 chmod 1755 linux