Linux速通04 用户、群组、权限
用户及passwd文件
# /etc/passwd文件的功能:存储所有用户的相关信息,实际上是存放用户信息的数据库(database)
# 各个字段的含义:
* 第一个字段(列)记录的是这个用户的名字(在创建用户时,由root用户起的名)
* 第二个字段(列)如果是x,表示该用户登录Linux时必须使用密码;如果为空,则表示不需要密码即可登录。
* 第三个字段(列)记录的是这个用户的 uid
* 500以前的 id号是系统占用的,500以后的才是个人账号的 uid
* 第四个字段(列)记录的是这个用户所属群组的 gid
* 第五个字段(列)记录的是有关这个用户的注释信息(如全名或通信地址)
* 第六个字段(列)记录的是这个用户的家目录路径
* 第七个字段(列)记录的是这个用户登录后第一个要执行的进程
* /bin/bash:表示可以登录操作系统
* /sbin/nologin:表示不能登录操作系统
shadow文件
# /etc/shadow文件的功能:存储所有用户的密码,每一个用户占一条记录,实际上是存放用户密码的数据库。
# 各个字段的含义:
* 第一个字段(列)是用户名
* 第二个字段(列)是密码(经过MD5算法加密)
群组及group文件
# /etc/group文件的功能:存放了Linux系统中所有群组的信息,实际上是存放群组信息的数据库。
# 各个字段的含义:
* 第一个字段(列)记录这个群组的名字
* 第二个字段(列)中的x表示这个群组在登录Linux时必须使用密码
* 第三个字段(列)记录的是这个群组的 gid
* 第四个字段(列)记录的是这个群组内还有哪些成员
在Linux中添加新用户
# useradd 命令,增加一个新用户账户
# 常用选项:
* -u:指定用户的 uid
* -g:指定用户所属的群组
* -d:指定家目录
* -c:指定备注信息
* -s:指定用户所用的shell
# 灵活应用 useradd命令的举例
* 例:在系统中新增一个 fox用户:useradd fox
* 例:在系统中新增一个 dog用户,属组为police,uid为600:useradd -u 600 -g police dog
# id + 用户名 可以查看用户的基本信息
在Linux中修改用户账户
# usermod 命令,修改用户的账户信息
# 常用选项:
* -u:修改用户的 uid
* -g:修改用户的 gid
* -G:将一个用户加入到指定群组中(以覆盖的形式加入)
* -aG:以追加的形式加入到指定的群组中
* -d:修改用户的家目录
* -c:修改用户的备注信息
* -s:修改用户所用的shell
* /bin/bash 或 /sbin/nologin
# 灵活应用 usermod命令举例
* 例:修改 fox用户的家目录为 /home/dog:usermod -d /home/dog fox
* 例:将 monkey这个用户添加到 dog这个群组中:usermod -G dog monkey
* 例:将 monkey这个用户的 gid变更为dog群组:usermod -g dog monkey
用户锁定和用户解锁
# usermod -L 命令:将用户的账号锁定,限制其登录
# usermod -U 命令:将用户的账号解锁,允许其登录
删除用户账号
# userdel 命令:删除用户账号
# 常用选项:
* -r:在删除这个用户的同时删除其家目录和邮箱
群组管理
# groupadd 命令:创建一个新的群组账号
* 常用选项:
* -g:指定群组的 gid
# groupmod 命令:修改群组账号信息
* 常用选项:
* -g:修改群组的 gid
* -n:修改群组的名称
# groupdel 命令:删除一个群组账号
查看文件权限
# ls -l 命令(ll):查看文件上所设定的权限
# 分析显示的信息:
* 第 1 个字符 为 第一组。普通文件(-), 目录(d),软连接(l),设备(b),管道文件(p)
* 第 2 、3 、4 个字符为第二组,定义了文件或目录的所有者(owner)所具有的权限,使用 u 代表所有者(owner)的权限
* 第 5 、6 、7 个字符为第三组,定义了文件或目录的所有者所在的群组中其他用户所具有的权限,使用 g 代表这一组(group)的权限
* 第 8 、9 、10个字符为第四组,定义了既不是 owner也不是和 owner在同一群组的其他用户对文件或目录所具有的权限,使用 o 代表这一组(other)的权限
# 掌握 ls -l 命令的显示结果中的第三列、第四列为文件按的属主和属组
root用户及文件安全的控制
# 掌握 root用户的定义:root用户也称为超级用户,它可以完全不受限制地访问任何用户的账户和所有文件及目录。
# 了解 Linux系统中用户分类:
* 第一类:所有者
* 第二类:同组用户(所属组)
* 第三类:非同组的其他用户
# 文件权限:读(read)、写(write)和执行(execute)
# 使用如下四个字符来表示文件操作权限:
* r:表示 read权限,也就是可以阅读文件或者 ls命令列出目录内容的权限
* w:表示 write权限,也就是可以编辑文件或者在一个目录中创建和删除文件的权限。
* x:表示execute权限,也就是可以执行程序或者使用 cd命令切换到这个目录以及使用带有 -l选项的 ls命令列出这个目录中详细内容的权限等。
* -:表示没有相应的权限(与所在位置的r、w、x相对应)
掌握使用chown修改文件的属主
# 格式
* chown 属主:数组 文件
* chown : 属组 文件
* chown 属主 文件
# 例:修改文件 file的属主为 root的命令:chown root file
掌握使用chgrp修改文件的属组
# 格式
* chgrp 属组 文件
# 例:修改文件 file的属组围殴 wg的命令为:chgrp wg file
使用符号法设定文件或目录上的权限
# chmod 命令:设定或更改文件或目录上的权限
# -r 属性:不但设置(或更改)该目录权限,而且还要递归地设置(或更改)该目录中所有文件或子目录的权限
# 符号表示法的定义:符号表示法是使用几个特定的符号来设定权限的状态
# 权限状态可以分为 3个部分:
* 第一个部分,表示要设定或更改谁的权限。
* u:表示所有者(owner)的权限
* g:表示群组(group)的权限
* o:表示既不是所有者也不是与所有者在用一个群组下的其他用户(other)的权限
* a:表示以上3组,也就是所有用户(all)的权限
* 第二个部分,表示运算符(或称操作符)。
* +:表示加入权限
* -:表示去掉权限
* =:表示设定权限
* 第三个部分,表示权限
* r,w,x
* 对目录来讲,指的是显示目录下文件(ls)、修改目录下文件(删除、新增、改名字)、进入该目录(cd)
# 灵活应用符号表示法设定或更改文件或目录上的权限
* 例:在 dog_wolf 文件上添加所有者和同组用户的可执行权限的命令:chmod ug+x dog_wolf
* 例:在 baby_dog 目录上为其他用户添加写权限的命令:chmod o+w baby_dog
# 如果只有可写权限,那么在 vim编辑的时候会覆盖原有数据。
使用数字表示法设定文件或目录上的权限
# 数字法的定义:数字表示发是指使用一组三位数的数字来表示文件或目录上的权限状态
* 第一个数字代表所有者(owner)的权限。(u)
* 第二个数字代表群组(group)的权限。(g)
* 第三个数字代表其他用户(other)的权限。(o)
# 数字代表的资源权限状态
* 4:表示具有读(read)的权限
* 2:表示具有写(write)的权限
* 1:表示具有执行(execute)的权限
* 0:表示没有相应的权限
# 灵活应用数字表示法设定或更改文件或目录上的权限
* 例:使用数字表示法对 owner开放 /home/dog/baby_dog目录和其中所有文件的一切权限,但是对同组用户开放读和执行权限,而对其他用户只开放读权限。
* chmod -r 754 /home/dog/baby_dog
# 执行文件的方法:
* . /文件名
* . 文件名
* sh 文件名
* bash 文件名