学习自“鸟哥的私房菜”
- 大部分是直接摘录的,提取了一些自己需要知道的东西,如果有需要请前往http://cn.linux.vbird.org/linux_basic/linux_basic.php
- 仅作个人学习记录
权限
-
档案属性
①可读
②可写
③可执行 -
属性再分类
①档案拥有者
②档案所属群组
③其他非拥有者与群组者 -
用户属性
①拥有者:有着所拥有的文档的使用权限
②群组组员:当文档属于某个群组,该群组的所有组员拥有该文档的使用权限,一个用户可以是多个群组的组员
③其他人
④root用户:拥有所有权限
⑤su - [用户名] 用于切换用户
用户信息【/etc/passwd】
[root@ip-1.1.1.1 ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
git:x:500:500::/home/git:/bin/bash
...
- 账号名称:用来与UID进行对应
- 口令:早期口令放在该字段,后面因为该文件是所有程序都能读取,口令容易被窃取,因此将口令数据改放到/etc/shadow中了,此处显示一个“x”
- UID:账号标识,有几个限制
D范围 ID使用者特性 0(系统管理员) 当需要让其他账号名称具备root权限时,将该账号UID改为0即可,可以多个账号同时设置为0,但是不建议 1 ~ 499(系统账号) 1.由于系统上启动的服务希望使用较小的运行权限来保证安全性,因此不希望用root身份运行,所以会有这些服务。
2.通常这些系统账号不可登陆,因此才会有/sbin/nologin这个特殊shell的存在(此处不懂什么意思)
1 ~ 99:由distributions 自行创建的系统账号
100 ~ 499:若用户有系统账号需求时,可以使用的账号 UID500 ~ 65535 (可登陆账号) 给一般使用者使用 - GID:与/ect/group有关
- 用户信息说明栏:用于介绍账号信息,无重要用途
- 家目录
- Shell:用户登陆系统后,会取得一个Shell来与系统的核心沟通以进行用户的操作任务。默认使用bash就是因为这个字段的指定。此处有一个shell可以用来代替成让账号无法取得shell环境的登陆动作,即/sbin/nologin
个人密码【/etc/shadow】
[root@ip-1.1.1.1 ~]$ cat /etc/shadow
root:$1$/30QpE5e$y9N/D0bh6rAACBEz.hqo00:14126:0:99999:7::: <==底下说明用
bin:*:14126:0:99999:7:::
daemon:*:14126:0:99999:7:::
adm:*:14126:0:99999:7:::
...
每一行有7个数据,分别是
- 账号名称:必须与/etc/passwd相同
- 口令:此处为真正的口令,而且是经过编译的口令(加密)
- 口令最近的变更日期(天):从1970年1月1日至今的天数
- 口令不可被更动天数:修改口令最低时间间隔(与3相比)
- 口令需要重新变更天数:口令有效期,超过这个时间则判定为过期(与3相比)
- 口令需要重新变更警告天数:再过n天口令就要过期,系统会发出警告(与5相比)
- 口令过期后的账号宽限时间
- 账号失效日期:常使用在收费服务中
- 保留字段
Linux所有组名【/etc/group】
[root@www ~]# head -n 4 /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
- 组名
- 群组口令:不配置,另外口令已经移动到/etc/gshadow
- GID:
- 群组支持账号名称:两个之间用逗号『,』隔开
文件属性
查看属性[ls -al],ls 即 list
drwxr-xr-x 4 root root 49 Jan 16 2017 udev
drwxr-xr-x 2 root root 18 Sep 14 2017 vim
-rw-r--r-- 1 root root 4812 Jul 5 2016 wgetrc
drwxr-xr-x 4 root root 82 Jan 17 2017 xdg
⑴drwxr-xr-x ⑵2 ⑶root ⑷root ⑸80 ⑹Jan 17 2017 ⑺xml
⑴『档案类型权限』,以drwxr-xr-x为例
- 第一个字符代表档案类型
- [d]目录
- [-]文件
- [l]连接档,类似于快捷方式
- [b]装置文件里面可供储存的接口设备,类似于硬盘和软盘
- [c]装置文件里面的串行端口设备,如键盘、鼠标(一次性读取装置)
- 接下来三个为一组,如『rwx』参数组合,此三个参数位置不会改变,如果没有劝你权限,会变为[-]
- [r]read可读
- [w]write可写
- [x]execute可执行,windows系统文件是否可执行根据扩展名,Linux系统则看权限
权限 | 文件 | 目录 |
---|---|---|
r | 可读取该文件实际内容 | 具有读取目录结构列表的权限(可以使用ls将目录内容列表显示) |
w | 可以编辑、新增、修改该文件内容(但是无法删除该文件) | 具备修改该目录结构列表的权限,包括新建、删除、重命名、移动文件等 |
x | 该文件具备可以被系统执行的权限 | 决定目录是否可以进入 |
- 第一组为『文件拥有者权限』,第二组为『同群组的权限』,第三组为『其他非本群组的权限』
所以drwxr-xr-x可以拆分为d|rwx|r-x|r-x
d文档类型为目录
rwx『文件拥有者权限』
r-x『同群组的权限』
r-x『其他非本群组的权限』
⑵『连结数』
- 后续补充
⑶『档案拥有者』
⑷『档案所属群组』
⑸『档案容量』
- 默认单为bytes
⑹『档案最后修改时间』
⑺『档案名称』
- 扩展名一般来表达文件类型,并无实际意义
扩展名 | 说明 |
---|---|
*.sh | 脚本或批处理文件(scripts),因为批处理文件是用shell写成的,所以扩展名就是 .sh |
*Z,*.tar,*.tar.gz,*.zip,*.tgz | 压缩文件,根据压缩软件不同,命名不同 |
*.html,*.php | 网页文件 |
- 使用预设的Ext2/Ext3文件系统时
- 单一文件和目录最大文件名为255哥字符
- 包含完成路径名称和目录之完整档名为4096个字符
注意:文件名第一个字符为『 . 』的文件为隐藏文件
修改文件属性与权限
- chgrp(change group)
1.修改群组,群组名必须在/etc/group中
2.语法chgrp 『新群组名』[-R可选,代表递归变更] dirname/filename - chown(change owner)
1.修改拥有者,用户名必须在/etc/passwd中
2.可顺带修改群组
3.语法chown 『新拥有者』:『新群组名』[-R可选,代表递归变更] dirname/filename
4.语法chown .『新群组名』dirname/filename直接修改群组 - 修改权限chmod
- 使用数字修改权限
- r:4 | w:2 | x:1
- 每种身份各自的三个权限(r/w/x)需要累加
- 假设权限修改为-rwxrwx—,则
- owner = rwx =4+2+1=7
- group = rwx =4+2+1=7
- others = - - - =0+0+0=0
- 所以最后的语法是“chmod 770 dirname/filename”
- 使用符号类型修改权限
- u:user | g:group | o:others | a:all
- +:加入 | -:除去 | =:设定
- 假设权限修改为-rwxr-xr-x,“chmod u=rwx,go=rx dirname/filename”
- 假设为所有人增加写入权限,“chmod a+w dirname/filename”
- 假设去掉所有人执行权限,“chmod a-x dirname/filename”
- 使用数字修改权限
文件默认权限
- 查询指令umask
①默认缺少的权限是0(特殊权限) 0(第一组—) 0(第二组—) 2(第三组-w-)[user@ip-1-2-1-1 ~]$ umask 0002 [user@ip-1-2-1-1 ~]$ umask -S u=rwx,g=rwx,o=rx
②创建文件时系统默认权限是-rw-rw-rw-,扣除--------w-,即-rw-rw-r–
③创建目录时系统默认权限是drwxrwxrwx,扣除扣除--------w-,即drwxrwxr-x-rw-rw-rw- --------w- -rw-rw-r--
drw-rw-rw- d-------w- drw-rw-r--
文件隐藏属性
- 修改文件隐藏属性chattr
①A:当存取次文件时,存取时间atime将不会被修改
②S:同步写入磁碟(默认非同步)
③a:只能添加数据,不允许删除,修改数据,仅root能配置改属性
④c:自动压缩此文件,读取时自动解压缩,存储时,会进行压缩后再存储
⑤d:dump程序被运行时,配置该属性可以使文件不会被dump备份
⑥i:让一个文件不能被删除,改名,配置连结也无法写入或新增数据,root专属
⑦s:文件被删除,将完全被移出硬盘,无法恢复
⑧u:与s相反,文件被删除,数据实际上还在硬盘中,可以救援 - 显示文件隐藏属性lsattr
文件特殊权限
-
SUID
- 仅对二进位程序有效
- 运行者对于该程序需要拥有x权限
- 运行者将在运行期间暂时拥有该程序拥有者(owner)的权限
-
SGID
- 仅对二进位程序有效
- 运行者对于该程序需要拥有x权限
- 运行者将在运行期间暂时拥有该程序群组成员(group)的权限
-
SBIT(Sticky Bit)
- 仅对目录有效
- 运行者对于此目录需要具备w,x权限
- 当使用者在该目录下创建文件或目录时,仅自己和root才有权力删除该文件
-
修改特殊权限
- 数字表达法——SUID:4 | SGID:2 | SBIT:1
- 字符表达法——SUID:u+s| SGID:g+s | SBIT:o+t
- chmod 7777 dirname/filename
- 具备权限是s,t,如果运行者本身不具备x权限,则显示为S,T,代表空权限
权限与命令之间的关系
- 让使用者能进入某目录,使其成为【可工作目录】
- 可使用的命令:例如cd等变换工作目录的命令
- 目录所需权限:使用者对这个目录至少需要具有x的权限
- 额外需求:如果使用者想要在目录内使用ls查阅档名,则使用者对此还需要r权限
- 使用者在某个目录内读取一个文件的基本权限为何
- 可使用的命令:例如car,more,less
- 目录所需权限:使用者对这个目录至少需要具备x权限
- 文件所需权限:使用者对文件至少需要r权限
- 让使用者可以修改一个文件的基本权限为何?
- 可使用的命令:例如 nano 或未来要介绍的 vi 编辑器等
- 目录所需权限:使用者在该文件所在的目录至少要有 x 权限
- 文件所需权限:使用者对该文件至少要有 r, w 权限
- 让一个使用者可以创建一个文件的基本权限为何?
- 目录所需权限:使用者在该目录要具有 w,x 的权限
- 让使用者进入某目录并运行该目录下的某个命令之基本权限为何?
- 目录所需权限:使用者在该目录至少要有 x 的权限
- 文件所需权限:使用者在该文件至少需要有 x 的权限
有效群组与初始群组
- 初始群组:/etc/passwd中第四栏的GID代表初始群组的GID,用户刚登陆,就拥有该群组的相关权限
- 有效群组:创建文件时,文件所属群组是根据有效群组来的
- 加入群组:在/etc/group进行添加即可
- 如果账号user同时支持群组A和群组B,那么它在读写文件时,针对群组部分,将同时拥有两个群组的功能
- 查询当前用户支持的群组:groups,显示的第一个群组为有效群组
- 切换有效群组:newgrp 【群组名】
切换用户( su与sudo)
su
指令 | 说明 | 密码 |
---|---|---|
su [-lm] [-c 命令] [username] | 1.切换用户 2.root切换为其他身份不需要密码 | 手动输入 |
su | 以non-login shell方式切换为root身份,存在以下影响 1.家目录未切换,仍然是原先用户的家目录 2.环境变量PATH未切换 3.收到的mailbox未切换 | 手动输入 |
su - | 使用login shell方式切换为root身份 | 手动输入 |
su - -c “[想要执行的命令]” | 以root身份执行该命令后立马切换为原来的身份 | 手动输入 |
sudo(sudo默认只有root身份可以使用)
- sudo运行流程
- 可以通过修改/etc/sudoers文件配置sudo权限