LINUX用户、用户组及权限管理
一、LINUX权限管理
LINUX权限分为:r,w,x,读,写,可执行
对文件来说:
r 可读,即可以使用类似cat等命令查看文件的内容
w 可写,可以编辑或删除此文件;
x 可执行,exacutable,可以在命令提示符下当做命令提交给内核运行。
对于目录来说(默认有x权限):
r 可以对此目录执行ls以列出内部的所有文件
w 可以在此目录中创建文件
x 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息。
文件 |
目录 |
|
r |
可读,即可以使用类似cat等命令查看文件的内容 |
可以对此目录执行ls以列出内部的所有文件 |
w |
w 可写,可以编辑或删除此文件,即更改文件的内容 |
可以在此目录中创建文件 |
e |
可执行,exacutable,可以在命令提示符下当做命令提交给内核运行。 |
可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息。 |
读写权限可表示为:以三位二进制数表示 rwx 对应位为1表示由此权限:
0 000 --- 无权限
1 001 --x 执行
2 010 -w- 写
3 011 -wx 写和执行
4 100 r-- 只读
5 101 r-x 读和可执行
6 110 rw- 读和写
7 111 rwx 读和执行
三类用户:属主、属组、其他用户
以9位数字显示,如 111101101 前三位表示属主权限,中间三位表示属组权限,末三位表示其他用户权限。
eg:755:rwxr-xr-x,属主拥有rwx权限,属组拥有rx权限,其他用户拥有rx权限。
二、用户管理与用户组管理的原理
用 户:UID, /etc/passwd 影子口令:/etc/shadow 默认在值存在/etc/default
用户组:GID, /etc/group 影子口令:/etc/gshadow
用户类别:管理员 UID:0
普通用户系统用户 UID:1-499
一般用户 UID:500-60000
用户组:管理员组:
普通组:系统组
一般组
用户组类别:
基本组:每一个用户都有默认组。可能是创建用户是就已经指定。
私有组,一般创建用户是,并没有指定用户所属的组,系统会自动为其创建一个与用户名同名的组,且只包含它一个用户。
附加组或者额外组:默认组以外的其他组。
/etc/passwd 文件内容的格式:
account登录名:password密码:UID:GID(基本组ID):用户的全名等信息注释信息:HOMEDIR家目录:用户的默认的Shell。
passwd文件 /etc/shadow 文件内容的格式
登录名:加密的密码(如果此位为*或者!!表明此用户是锁定,不可登录的):从19700101到上一次修改密所经过的天数:密码最少使用期限:离密码失效还剩的时间:从19700101过了多久账户密码自动失效:保留字段
加密方法:
对称加密:加密和解密使用同一个密码
公钥加密:每个密码都成对出现,一个为私钥(secret key),一个为公钥(public key)公钥加密,私钥解密。公钥一般用来做密钥交换。
单项加密:也叫散列加密,可以由明文取得密文,提取数据特征码。由密文取得明文是不可以的。也叫指纹加密。常用来做数据完整性校验。特性:1、不可逆 2、蝴蝶效应、雪崩效应(防逆向工程)md5sum 可以对一个文件加密md5sum 计算文件特征码。3、定长输出(MD5:Message Digest,128位的定长输出,MIT研发的
SHA1:SecureHashAlgorithm,160位的定长输出
SHA256:256位定长输出
添加用户:useradd adduser userdel(删除命令)、usermod、passwd、chsh、chfn、finger、id、chage
useradd USERNAME
passwd USERNAME 给之前创建好的用户加密码、也可以改密码
组管理:
gronpadd,groupdel,groupmod,gpasswd
权限管理:
chown,chgrp,chmod,umask
查看命令位置可以用 which eg:which useradd
命令替换 $() 或者` `
useradd [options] USERNAME
-u 手动指定UID(指定的UID不可重复,即尚未使用的UID,且指定的UID要大于500)
-g 手动指定其基本组GID,组必须存在
-G 指定附加组,组必须存在,可以有多个,使用逗号隔开即可
-c 指定注释信息"COMMENT"
-d 指定用户家目录 /path/to/somedirectory
-s 指定shell的路径 /etc/shells 指定了当前系统可用的安全shell 一定要是这个文件中的某一行
-m -k 把/etc/skel将这些文件复制到用户的家目录,/etc/skel下存放着用户的bash用于用户配置文件
-M 不给用户创建家目录 /etc/login.defs 用户创建时的默认配置,即使默认配置需要创建家目录,也不会给用户创建家目录
userdel:
userdel [option] USERAME
如果没有指定选项,删除用户时,用的家目录是不会被删除
id:查看用户的id
id USERNAME
-u 只查看用户的uid
-g 只查看用户的基本组
-G 查看用户的所有组
-n 显示id对应的名称(-Gn显示用户所有属主的名称)
环境变量: PATH、HISTSIZE、SHELL
echo $SHELL 即可查看当前系统可用的安全shell
finger 查看用户账号信息
finger USENAME
userdel:删除用户时默认不删除用户的家目录
-r:删除用户的同时,删除用户的家目录
修改用户账号属性:
usermod
-u 更改用户的UID
-g 更改用户的基本组GID,更改为的GID必须是已经存在的
-G 更改用户的附加组,更改后覆盖原来的附加组
-G-a 在原有附加组的基础上追加附加组,不附带
-c 更改注释
-d 为用户指定新的家目录,-m将原有家目录的文件移动至新的家目录,一般一起使用。
-s 更改用户的shell
-l 更改用户的用户名
-e 定义用户的过期时间YYYY-MM-DD
-f 指定用户的非活动时间
-L 锁定账号
-U 解锁账号
chsh:更改用户的默认shell
chsh USERNAME
chfn:修改用户的finger信息,修改用户的注释信息
passwd:密码管理
passwd [USERNAME]
--stdin 从标准输入读取密码
-l 锁定用户账号
-u 解锁用户账号
-n 密码最短使用期限
-x 密码最长使用期限
-w 警告时间
-i 非活动时间
-d 删除用户密码
pwck:检查密码文件的完整性
组管理:
groupadd:创建组
groupdd GRPNAME
-r:添加系统用户组
-g:指定GID
groupmod:修改组属性
-g 修改GID
-n 修改GRPNAME
groupdel:删除组
gpasswd:为组设定密码
newgrp GRPNAME<-->exit 组登录退出
创建用户的过程涉及到/etc/passwd,/etc/shadow/ /etc/group
权限管理:
r:文件:查看内容目录:使用ls目录,但不能切换进子目录
w:文件:可以编辑文件、删除文件目录:可以在此目录中创建文件
x:文件:可执行目录:可以使用cd 或ls -l 查看详细信息
三类用户:
u:属主
g:属组
o:其他用户
chown:改变文件属主(只有管理员可以使用此命令)
chown USENAME file,... 把file文件的属主改为USENAME用户
-R:修改目录及其内部文件的属主(递归)
--reference=/path/to/somefile
file,... 把file等文件的属主信息修改为和reference指定的文件一样
chgrp GRPNAME file,... 把file等文件的属主信息修改为GRPNAME
-R 修改目录及其内部文件的属主(递归)
reference=/path/to/somefile
file,... 把file等文件的属组信息修改为和reference指定的文件一样
chown USERNAME:GRPNAME file,...
chown USERNAME.GRPNAME file,... 同时更改属主属组,只改属组,USERNAME字段为空即可
chmod:修改文件的权限
修改三类用户的权限:
jchmod MOD file,...
--R
--reference=/path/to/somefile
file,... 把file等文件的属组信息修改为和reference指定的文件一样
修改某类用户或某些类用户的权限:
u(属主),g(属组),o(其他),a(所有
chmod 用户类别=MODE file,....
修改某类用户某位或某些位权限:
chmod 用户类别(+/-)rwx
手工创建用户:创建一个hive用户,基本组hive(5000),附加组为mygroup
1、编辑/etc/group nano /etc/group 最后一行:hive:x:5000:
2编辑/etc/passwd, nano /etc/passwd
hive:x:5000:5000:Hive:/home/hive:bin/bash
3、编辑/etc/shadow hive:!!:15765:0:99999:7:::
4、拷贝配置文件 cp -r /etc/skel/ /home/hive
5、更改属主属组 chown -R hive.hive /home/hive
6、让家目录的属组和其他用户没有任何权限 chmod -R go= /home/hive/
7、ls -la /home/hive/ 查看家目录及其子目录的权限
8、手动生成密码:
openssl -1 -salt ‘12345678‘ (-1 指定加密算法,-salt加入杂质)产生密码串
更改/etc/shadow 用产生的密码串替换原有!!