文章目录
一 、管理用户账号和组账号
什么是用户账号和组账号
用户账号
超级用户: root用户是Linux操作系统中默认的超级用户,对本主机有至高无上的权限、系统中超级用户是唯一的
普通用户:由root用户或其他管理员用户创建的,拥有的权限会受到限制,一般只在自己的宿主目录中有权限
程序用户:一些权限等级特别地的用户,一般不允许登录到系统,仅用于维持系统或每个程序的正常运行。如bin、daaemon、ftp
组账号
基本组:
只有一个一般为创建用户时指定的组
附加组:
用户除了基本组之外,其他添加的组
UID和GID
uid是用户id号
gid是组id号
在/etc/passwd 中的第四的字段就是该用户的基本组gid号
- root用户账号的uid和gid都是固定值0
- 程序用户的uid和gid号默认为centos5,6:1-499,centos7:1-999
- 普通用户的uid和gid默认为centos5,6:500-60000,centos7:1000-60000
其中第一个字段表示的是用户名,第二个字段表示的是密码,第三个字段表示的是用户的uid号,第四个字段表示的是用户的gid号,第五个字段表示的是与用户的全名的描述,第六个字段表示用户的家目录,第七个字段表示用户的登录shell信息。
在命令行中输入man 5 passwd可以查看passwd相关的解释
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐胁,后来经改进后,将密码转存入专门的shadow文件中,而passwd文件中仅保留密码占位符"x”。
输入/etc/shadow可以查看用户的账号信息,默认只有root用户可以读取shadow中文件的信息,但不允许直接修改当中的信息。
- 字段1:用户帐号的名称
- 字段2:使用MD5加密的密码字串信息,当为"*“或”!!"时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统
- 字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
- 字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制
- 字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为999,表示不进行限制
- 字段6:提前多少天警告用户密码将过期,默认值为7
- 字段7:在密码过期之后多少天禁用此用户
- 字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月01日起计算),默认值为空,表示账号永久可用。
- 子段9:保留字段(未使用)
二 、用户操作
添加用户账号
useradd [选项] …用户名
常用选项
-u 指定用户uid号
-d 指定用户的宿主目录位置,只能用绝对路径,不需要事先创建目录
-e 指定用户的账户失效时间
-g 指定用户基本组名
-G 指顶用户的附加组名
-M 不建立宿主目录
-s 指定用户登录shell (/bin/bash 可登录系统 /bin/false /sbin/nologin不可登录系统)
设置、修改密码
passwd
root可以修改自己的密码也可以指定给用户进行修改
而普通用户只能执行passwd来修改自己的密码
-d 清空指定用户的密码
-l 锁定用户
-S 查看用户的状态
-u 解锁用户
修改密码的方法:
1、passwd
2、echo 密码 | passwd --stdin 用户名
3、echo 用户名:密码 | chpasswd
修改用户账户的属性
格式:usermod [选项]… 用户
选项 | 作用 |
---|---|
-l | 更改用户账号的登录名称 格式:usermod -l 新名称 旧名称 |
-L | 锁定用户账户 |
-U | 解锁用户账户 |
-u,-d,-e,-g,-G,-s 与useradd命令中含义相同
删除用户账号
userdel [选项] 用户名
-r 连同用户的宿主目录一同删除
三 、用户账号的初始配置文件
用户账号的初始配置文件
useradd命令添加一个新的用户后会在该用户的宿主目录中建立一些初始配置文件
这些文件来自于账号模板目录/etc/skel基本上都是隐藏文件
/etc/profile
对所有用户有效
全局系统环境变量配置文件,主要用于设置开会后自动执行的命令和变量设置
只会在用户每次登录时执行一次,或者使用source /etc/profile手动加载生效
/etc/bashrc
也是对所有用户有效
也是可以用来设置自动执行的命令和环境变量设置
会在任意用户每次登录或者切换shell环境(su,bash等)都会执行
~/.bash_profile
只对家目录的用户有效
效果类似/etc/profule
会调用~/.bashrc
~/.bashrc
只对家目录的用户有效
只会调用/etc/bashrc
- profile:系统启动后用户登录直接执行文件里的名改了或配置
- bashrc: 用户登录或者用户切换shell环境就会执行文件里的命令或者配置
由来:
从创建用户时,从/etc/skel目录中的模板复制而来
调用
/etc/profile–> /etc/profile.d/xxx.sh
~/.bash_profile–> ~/.bashrc–>/etc/bashrc
组账号管理
组帐号文件在/etc/group目录下。主要是用来保存组账号基本信息
添加组
groupadd [-g gid] 组账号名
添加删除组成员
gpasswd 命令
gpasswd [选项] …组账号名
-a 向组内添加一个用户
-d 从组内删除一个用户成员
-M 定义组成员列表,以逗号分隔
查询账号信息
finger
查询用户账号的登录属性
w、who、users命令都可以查询以登陆到主机的用户信息
w
who
users
四 、文件/目录的权限和归属
访问权限
读r:允许查看文件内容、显示目录列表
写w:允许修改文件内容、允许在目录中新建、移动、删除文件或者子目录
执行x:允许运行程序、切换目录
权限 | 符号 | 权限值 |
---|---|---|
读 | r | 4 |
写 | w | 2 |
执行 | x | 1 |
chmod命令
chmod设置文件和目录的权限
chmod+[ugoa]+[=-+]+[rwx]文件或者目录
chmod+nnn(三位八进制数(421相加))文件的权限是6、6、6目录的权限是7、7、7
chown命令
chown设置文件和目录的归属
- chown 属主 文件或目录
- chown :属组 文件或目录
- chown 属主:属组 文件或目录
chown -R :递归修改指定目录下的所有文件、子目录的归属
修改文件属主信息
修改文件属组信息
umask
作用:控制新建文件或者目录的权限
umask设置:umask + 权限(数字)
查看umask:umask