目录
用户帐号
超级用户、普通用户、程序用户
组帐号
基本组(私有组)
附加组(公共组)
UID和GID
UID (UserIDentity,用户标识号
GID (Group IDentify,组标识号)
uid是用户账号
gid就是组账号
uid是惟一的会给他默认分配一个gid
附加组需要手动添加
输入id +组名查看是什么用户
uid为0的才是超级管理员
基本组只要你创建了组默认就会分配组
默认uid是多少gid就是多少组就是多少
程序用户和普通用户
程序用户: 1-499( centos 6以前),1-999(centos 7以后)
对守护进程获取资源进行权限分配
普通用户: 500+ (centos6以前) ,1000+ (Centos7以后)
给用户进行交互式登录使用
root账户uid一定为0(切记)
用户账号文件/etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息
文件位置: /etc/passwd
每一行对应一个用户的帐号记录
etc/passwd/分段代码的含义
root :x : 0 : 0 : root: /root : /bin/bash
-
用户名(Username):它的值为
root
,表示该用户的名称为 root。 -
密码(Password):它的值为
x
,表示该用户的密码已经被加密并存储在/etc/shadow
文件中。 -
用户编号(UID):它的值为
0
,表示该用户的 UID 为 0,即超级用户(root)。 -
组编号(GID):它的值为
0
,表示该用户所属的主组的 GID 为 0,即超级用户组(root)。 -
用户注释(Comment):它的值为
root
,表示该用户的注释信息为 root。 -
家目录(Home Directory):它的值为
/root
,表示该用户的家目录为/root
目录。 -
Shell 程序(Shell Program):它的值为
/bin/bash
,表示该用户在登录时默认使用的 Shell 程序为 Bash。
其中,前五个字段是必须的,而后两个字段可以省略。这些字段以冒号 :
作为分隔符,它们的顺序不可更改。
*和!!
当 /etc/passwd文件中看到
*和!!普通用户表示你创建了用户但没有设置密码(密码为空)
程序用户则表示不可登陆
- 用户名:root
- 加密后的密码:中间的乱码
- 最后一次修改密码的时间:19307
- 密码需要重新修改的最短天数:0
- 密码需要重新修改的最长天数:99999
- 密码过期前给出警告的天数:7
useradd
常用选项:
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在
-G:指定用户的附加组名 (或使用 GID 号),对应的组名必须已存在。
-M:不建立宿主目求。
-s:指定用户的登录 Shell(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
默认情况下useradd+用户名剩下的系统会帮你设置
查看就是etc passswd
passwd
常用选项:
-d:清空指定用户的密码,仅使用用户名即可登录系统
-l:锁定用户账户,锁定的用户账号将无法再登录系统。#图形化界面可以登录,文字界面无法登录
-s:查看用户账户的状态 (是否被锁定)
-u: 解锁用户账户
passwd + 用户名 等于更改用户密码
改密码时Linux密码默认不显示
echo 123456 | passwd--stdin dn
把123456当密码赋予dn用户
此方法主要用在批量添加用户上
su
从超级管理员切换到用户不需要密码
普通用户间切换需要密码
su 不完全退出
su - 完全切换用户
在超级管理员目录下su相当于刷新功能
在普通用户下输入su表示直接切回root用户
修改主机名
hostname 主机名--临时修改,重启失效
vim /etc/hostname ---永久修改
hostnamectl set-hostname 主机名 --永久修改
第二种改配置文件改名必须重启才能生效
第三种命令修改su刷新直接就好了
usermod
修改用户账号属性 usermod
-u:修改用户的 UID 号。usermod -u uid号 用户名
-d:修改用户的宿主目录位置
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g:修改用户的基本组名 或使用 GID 号)
-G:修改用户的附加组名 (或使用 GID 号)
-s:指定用户的登录 shell
-L:锁定用户账户
-U:解锁用户账户
一种用passwd -l锁定密码
一种用usermod -L锁定用户
要记面试会问锁定用户的两种方式(仅限普通用户超级管理员不受影响)
修改uid不能改已存在的uid
usermod - s /nologin test 这是就无法登陆了这时超级管理员无法登录
usermod - L dn 这时root用户不受影响可以登录
删除用户账户userdel
既可以删普通用户也可以删程序用户
userdel -r 用户 连用户加家目录一并删除
改配置文件
source 在bash环境中读取并执行文件当中的命令
etc profile全局用户配置
bash profile个人定制配置文件
/.bash profile: 该文件是用户登录时被执行的脚本,可以用来设置环境变量和一些常用的命令别名等信息。通常用来为用户定制个性化的系统环境。
vim .bash profile
alias cat='cat -n'
source .bash profile
修改之后重新登录shell即可
需要注意的是,这些配置文件是在不同的环境下被执行的,执行的顺序也不同。
通常在登录系统时:
系统会首先执行/etc/profile文件(重要)
然后/.bash_profile文件会被执行,(重要)
然后再执行/.bashrc文件。
而在退出bash shell时,~/.bash_logout文件会被执行。exit退出时自动执行
gpasswd
添加删除组成员 gpasswd
常用选项:
-a: 向组内添加一个用户
-d: 从组内删除一个用户成员
-M: 定义组成员列表,以逗号分隔
useradd yht
useradd hcy
gpasswd -M yht,hcy,qzz dn #将用户yht、hcy和qzz加入到dn用户组中
cat /etc/group
一旦添加到组内后添加的用户就拥有了同等的权限
gpasswd -dtest zhangtaotao#test表示所在的组成员 #zhangtaotao 组名
删除完整格式组员组长都需要写
-M指定多个组员添加到组里
gpasswd -M dn ,test zhangtaotao
前面写组员后面最后是组长组员中间是,隔开
groupdel 删除时不能删除组员必须把用户从组里删出来单独删
也不能删组长因为里面还有组员
以用户方式创建的不可以删
1.当组账号是组员,或者组长,不能删除
2.基于用户创建的组,不能删除
3.只创建了组账号,没有关联用户,且不能是组员也不能说组长时才可以删除
用userdel -r 可以直接全部删除但也需要遵守有组员时删不掉
finger查询用户的详细属性(需要额外安装)
w who users
w最全面的信息who和users简洁版
文件或者目录的权限管理
访问权限
读取r:允许查看文件内容、显示目录列表
写入 w:允许修改文件内容,允许在目录中新建删除文件或子目录。
可执行 x:允许运行程序、切换目录
归属(所有权)
属主: 拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
查看文件/目录的权限和归属
chown
设置文件和目录的归属chown
chown命令
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
设置文件和目录的权限chmod
常用选项:
-R:递归修改指定目录下所有子项的权限
递归就是当前目录下包含目录自己以及目录下所有的文件
加上chmod就是改变当前目录下包含目录自己以及目录下所有的文件的权限
chmod -R 777 test/
改变test文件夹下所有文件的权限
改变文件目录的归属
即改了所在的组也改了用户
只改变了组没改变用户
1.chown dn:dn +文件或目录名或者可以写成chown dn.dn同样的意思(即该所有者也改了所在组)
2.chown root +文件名或目录名(只改所有者)
3.chown :root +文件名或目录名(只改所在组)
4.chown -R dn:dn +文件名或目录名(修改当前目录和目录里面所有文件的所有者和所在组多个目录递归只会对最后一个目录及其文件生效)
umask
设置目录和文件的默认权限umask
umask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限
666-022得到644
在创建文件时默认不给执行权限
新建的目录无论umask怎么设置只要权限出现基数会自动变成偶数如果后续想要设定权限就要用chmod命令
目录默认自带执行权限
umask就是限制创建新文件的权限如果不做限制
文件默认就是666
目录就是777
666-umask
777-umask
文件:就是没有执行权限,必须要用chmod赋权
目录:就算不给执行权限也默认自带,要改也是用chmod改
本章总结
用户账号管理 (useradd、passwd、usermod、userdel)
组账号管理 (groupadd、gpasswd、groupdel)
用户账号文件与组账号文件
查询账号相关信息的命令 (groups、id、finger、w)
设置目录与文件权限 (chmod)
设置目录与文件归属 (chown)
注意用户账号文件与组账号文件要知道etc /passwd/