LINUX用户、用户组及权限管理

一、LINUX权限管理

LINUX权限分为:rwx,读,写,可执行

对文件来说:

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 前三位表示属主权限,中间三位表示属组权限,末三位表示其他用户权限。

eg755rwxr-xr-x,属主拥有rwx权限,属组拥有rx权限,其他用户拥有rx权限。

 

二、用户管理与用户组管理的原理

  户:UID,  /etc/passwd  影子口令:/etc/shadow 默认在值存在/etc/default

用户组:GID,  /etc/group   影子口令:/etc/gshadow

 

 

用户类别:管理员    UID0

                      普通用户系统用户 UID1-499 

                                        一般用户 UID500-60000 

 

 用户组:管理员组:

         普通组:系统组

                           一般组

用户组类别:

         基本组:每一个用户都有默认组。可能是创建用户是就已经指定。

         私有组,一般创建用户是,并没有指定用户所属的组,系统会自动为其创建一个与用户名同名的组,且只包含它一个用户。

         附加组或者额外组:默认组以外的其他组。

 

/etc/passwd 文件内容的格式:

wKioL1hGidXT0MupAAARu_jTRCU492.png-wh_50

account登录名:password密码:UIDGID(基本组ID):用户的全名等信息注释信息:HOMEDIR家目录:用户的默认的Shell

 

passwd文件 /etc/shadow 文件内容的格式

wKioL1hGifzSdcYMAAAnopXFZlE941.png-wh_50

登录名:加密的密码(如果此位为*或者!!表明此用户是锁定,不可登录的):从19700101到上一次修改密所经过的天数:密码最少使用期限:离密码失效还剩的时间:从19700101过了多久账户密码自动失效:保留字段

        

加密方法:

         对称加密:加密和解密使用同一个密码

         公钥加密:每个密码都成对出现,一个为私钥(secret key),一个为公钥(public key)公钥加密,私钥解密。公钥一般用来做密钥交换。

         单项加密:也叫散列加密,可以由明文取得密文,提取数据特征码。由密文取得明文是不可以的。也叫指纹加密。常用来做数据完整性校验。特性:1、不可逆 2、蝴蝶效应、雪崩效应(防逆向工程)md5sum 可以对一个文件加密md5sum 计算文件特征码。3、定长输出(MD5:Message Digest,128位的定长输出,MIT研发的

SHA1SecureHashAlgorithm160位的定长输出

SHA256256位定长输出

 

添加用户:useradd  adduser  userdel(删除命令)usermodpasswdchshchfnfingeridchage

useradd USERNAME

passwd USERNAME 给之前创建好的用户加密码、也可以改密码

 

组管理:

gronpaddgroupdelgroupmod,gpasswd

 

权限管理:

chown,chgrp,chmod,umask

 

 

查看命令位置可以用 which egwhich 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显示用户所有属主的名称)

        

 

环境变量: PATHHISTSIZESHELL

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 USERNAMEGRPNAME 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用户,基本组hive5000),附加组为mygroup

1、编辑/etc/group  nano /etc/group   最后一行:hivex: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/

7ls -la /home/hive/ 查看家目录及其子目录的权限

8、手动生成密码:

openssl -1 -salt '12345678'  (-1 指定加密算法,-salt加入杂质)产生密码串

更改/etc/shadow 用产生的密码串替换原有!!