文章目录
一、 管理用户账号
与windows系统相比,Linux系统中的用户账号和组账号的作用在本质上是一样的,同样是基于用户的身份来控制资源的访问,只是在表现形式及个别细节方面有部分差异
1.1 用户账号
- 超级用户:root用户是Linux系统中默认的超级用户账号,对本机拥有最高的权限,只有进行系统管理、维护时,才建议使用root账号。
- 普通用户:需要由root账户或者其他管理员账户创建,权限受到部分限制,一般只在用户自己的宿主目录内拥有完整权限。
- 程序用户:在安装Linux系统及部分应用时会添加一些特定低权限的用户账号,一般不允许登录系统,仅用于维持系统或者某个程序的正常运行。
1.2 UID
UID(User Identification)是每一个用户账号的数字形式的身份标记,原则上每一个用户的UID是唯一的,root默认是0,程序用户默认是1-999,普通用户是1000-60000.
1.3 用户账号文件
在linux系统中用户信息文件被保存在/etc/passwd文件中,在文件中我们可以看到用户的相关信息,但这个文件中并没有用户的密码
我们每创建一个用户,用户信息会自动加入到/etc/passwd文件中,在文件中以冒号为分隔符
第一位代表用户名,
第二位代表密码占位符,
第三位代表用户ID,
第四位代表用户组ID,
第五位代表用户描述信息,
第六位代表用户主目录,
第七位代表用户默认shell。
用户的密码文件在/etc/shadow文件中,可以通过查看命令进行查看
第一位代表用户名,
第二位代表用户密码,如果!!代表用户还没有密码,
第三位代表用户上次修改密码距离1970年1月1日的天数,
第四位代表密码最短有效天数,0为无限制,
第五位代表密码最长有效天数,99999可以理解为无限制,
第六位代表密码到期警告天数默认是7,进行警告后可以使用旧密码,
第七位代表密码宽限期,宽限期内不允许使用旧密码,
第八位代表密码失效日期
1.4 用户账号管理
1.4.1 useradd命令–添加用户账号
useradd命令可以用于添加用户账号,最简单的用法是不添加任何选项,只用用户名作为useradd命令的参数。
useradd命令
useradd -d //指定宿主目录
useradd -u //指定UID多少
useradd -e //指定账户失效时间
useradd -g //指定用户基本组
useradd -G //指定用户附加组,既可以属于用户组也可以同时属于其他
useradd -M //不建立宿主目录
useradd -s //指定登录的shelluser
1.4.2 passwd命令–设置更改口令
新建账户后需要为账户设置密码才能正常使用
passwd命令
passwd -d //清空密码
passwd -l //锁定账户
passwd -S //查看账户是否被锁定
passwd -u //解锁用户账户
1.4.3 usermod命令–修改用户账号属性
对于系统中已经存在的用户账号,可以使用usermod命令重新设置属性
usermod命令
usermod -u //修改用户UID
usermod -d //修改用户的宿主目录位置
usermod -e //修改用户账户失效时间 可以YYYY-MM-DD日期
usermod -g //修改用户的基本组名
usermod -G //修改用户的附加组名
usermod -s //指定用户登录的shell
usermod -l //更改用户登录的名称
usermod -L //锁定账户
usermod -U //解锁用户账户
1.4.4 userdel–删除用户账号
当某个账户不需要再使用的时候,我们就可以进行删除
userdel命令
userdel 账号名
userdel -r //可以同时删除账户宿主目录
1.4.5 用户账号的初始配置文件
新建账户以后。useradd命令会在该用户的宿主目录中建立一些初始配置文件,这些文件来自于账号模板目录“/etc/skel”,基本都是隐藏文件,查看时应该用ls -a。
.bash_logout:每次退出登录时执行
.bash_profile:每次登录时被执行
.bashrc:每次加载/bin/bash程序时执行,优先级更高
二、 管理组账号
2.1 组账号管理
对于用户来说,对应组账户可分为基本组(私有组)和附加组(共有组)两种类型。每一个账户可以是多个组账户的成员,但是基本组账号只有一个。
组账号的标识就是GID。
2.1.1 组账户文件
组账户相关的配置文件也有两个,分别存在**/etc/group** 和 /etc/gshadow。前者用于保存组账号名称,GID号,组成员等基本信息,后者用于保存组账号的加密密码字符串等信息(但是很少使用到)。
某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用逗号“,”分隔。
2.1.2 添加、删除、修改组账号
groupadd命令--添加组账号,需要指定GID号
例如
groupadd -g 1000 class //添加一个名为class的组账户,指定GID为1000
groupdel命令--删除组账号
groupdel class //删除组账号class
gpasswd命令--添加、删除、修改组成员
举例说明
gpasswd tom //给tom设置密码
gpasswd -a //添加、设置、删除成员
gpasswd -a tom1 root //正在将用户“tom1”加入到“root”组中
gpasswd -d tom1 root //将用户“tom1”从“root”组中删除
2.2 查询账号信息
在Linux系统中,可以使用几个常用的命令查询工具直观的查看账户文件信息。
2.2.1 id命令
可以查询用户账号的身份标识,快速查看指定用户账号的UID,GID等表示信息。
2.2.2 groups命令
可以查看指定的用户账号属于哪些组
2.2.3 finger命令
可以查询指定的账号的登录属性等详细信息,包括登录名称,完整名称,宿主目录,登录shell等。
2.2.4 w命令
可以查询当前主机中用户登录的情况,列出登录账号名称,所在终端,登录时间,来源地点等信息。
三、 文件的权限和归属
在Linux文件系统的安全模型中,为系统中的赋予了2个属性,访问权限和文件所有者,简称权限和归属,其中权限包括读取R-4、写入W-2、可执行X-1三种基本类型,归属包括属主、属组。
3.1 查看文件权限及归属
首先我们使用命令ls -ld /etc /etc/passwd 查看文件权限及归属
文件类型
普通文件(-): 是记录在存储介质上的ASCII或二进制流。
目录文件(d): 是包含若干个文件和子目录的文件。
设备文件(b,c): 代表连接在系统上的物理设备
字符设备(c):又叫raw设备:读写与存储之间没有任何缓冲,一次读写1byte。
如磁带
块设备(b):读写与存储之间有缓冲,一次读写一个block。如终端或磁盘设备。
符号链接(l) :是指向另一个文件的文件。
文件权限说明
读r - 4
允许用户打开、浏览文件内容
写w - 2
允许用户打开、编辑文件
执行x -1
允许用户执行
3.2 设置文件权限及归属
默认文件权限根据umask值设置(默认为0022)
新文件权限为rw-r-r(644)
666 – 022 = rw-r-r
权限掩码umask的作用
- 控制新建的文件或目录的权限
- 默认权限去除umask的权限就为新建的文件或者目录的权限
如何修改Umask值呢?
- 临时修改 umask 066 (这个066根据的根据的需求定,可以理解成反子网掩码,这个是临时的)
- vi /etc/bashrc 最后一样插入umask 066 (这个是永久生效的) [root@localhost tmp]#
vim /etc/profile
3.2.1 设置文件或目录权限及归属
常用的是700 755 最大权限是777
默认文件夹 755
默认文件 644
一般操作习惯都用数字来描述
chmod命令
chmod [ugoa] [+-=] [rwx] 文件或目录 //(u,g,o,a分别表示属
主,属组,其他用户,所有
用户)(+-=分别表示增加,
去除,设置权限)
chmod nnn 文件或目录 //nnn表示三位八进制数字,也就是改变权限值
chmod -R //递归修改指定目录下所有子项的权限
chown命令
chown 属主 文件或目录
chown:属组 文件或目录
chown 属主:属组 文件或目录
-R //递归修改指定目录下所有文件,子目录的归属