Linux用户、组和权限管理

2017年1月18日15:11:04 发表评论 2,993 ℃

用户

Multi -tasks, Multi-Users

每个使用者:

用户标识、密码:

Authentication认证:

Authorization授权:

Audition审计:

组:用户组,用户容器

用户类别:

管理

普通用户

普通用户

登录用户

用户标识:UserID,UID

16bits二进制数字:0-65535

管理员:0

普通用户:1-65635

系统用户:1-499(Centos6)1-99(Centos7)

登录用户:500-600000(Centos6)1000-60000(Centos7)

名称解析:名称转换

Username <--> UID

根据名称解析库进行:/etc/passwd

组:

组类别1:

管理员组

普通用户组

系统组

登录组

组标识:GroupID,GID

管理员组:0

普通用户:1-65635

系统用户:1-499(Centos6)1-99(Centos7)

登录用户:500-600000(Centos6)1000-60000(Centos7)

名称解析:名称转换

groupname <--> UID

根据名称解析库进行:/etc/group

组类别2:

用户的基本组

用户的附加组

组类别3:

私有组:组名同用户名,且只包含一个用户:

公共组:组内包含了多个用户:

认证信息:

通过比对事先存储的,与登录时提供的信息是否一致:

password:

/etc/shadow

/etc/gshadow

密码的是要策略:

1、使用随机密码

2、最短长度不要低于9位

3、应该使用大写字母、小写字母、数字和标点符号四类中至少三类

4、定期更换

加密算法:

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

非对称加密:加密和解密使用的一对儿密钥:

密钥对儿:

公钥:public key

私钥:private key

单项加密:只能加密,不能解密:提取数据特征码

定长输出:

雪崩效应:

算法:

md5: message digest,128bits

sha:  secure hash algorithm ,160bites

sha224

sha256

sha384

sha512

在计算之时加salt,添加随机数

/etc/passwd :用户信息库

name:password:UID:GID:GECOS:directory:shell

name:用户名

password:可以是加密的密码,也可是占位符x

UID:

GID:用户所属的主组ID号

GECOS:注释信息

directory:用户的家目录

shell:用户的默认shell,登录时默认shell程序:

/etc/shadow 用户密码

用户名:加密的密码:最近一次修改密码的时间:密码最短使用期限:密码最长使用期限:警告期限:过期期限:保留字段

/etc/group

group_name:passwd:GID:user_list

user_list:该组的用户成员:以此组为附加组的用户的用户列表:

linux用户组和组管理

安全上下文:

进程以其发起者的身份运行:

进程对文件的访问权限,取决于发起此进程的用户的权限

为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常要为此创建多个普通用户,这类用户从不用于登录

groupadd命令:添加组

groupadd [选项] group_name

-g GID: 指定GID: 默认是上一个组的GID+1

-r 创建系统组:

groupmod命令:修改组属性

groupmod [选项] group

-g GID: 修改GID

-n new_name: 修改组名

groupdel命令:删除组

groupdel [选项] group

useradd命令:创建用户

useradd [选项] 登录名

-u,--uid UID: 指定UID

-g, --gid GROUP: 指定基本组ID,此组得事先存在

-G, --grups GROUP1[,GROUP2,...[,GROUPN]]] 指明用户所属的附加组,多个组之间用逗号分隔

-c, --comment COMMENT:指明注释信息

-d, --home HOME_DIR:以指定的路径为用户的家目录:通过复制/etc/skel此目录并重命名实现:指定的家目录路径如果事先存在,则不会为用户复制环境配置文件

-s,--shell SHELL: 指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件:

-r, --system:创建系统用户:

注意:创建用户时的诸多默认设置配置文件为/etc/login.defs

useradd -D:显示创建用户的默认配置:
useradd -D 选项:修改默认选项的值:

修改的结果保存于/etc/default/useradd文件中:

usermod命令: 修改用户属性

usermod [选项] 登录名

-u,--uid UID: 修改用户UID

-g,--gid group: 修改用户所属的基本组

-G, --grups GROUP1[,GROUP2,...[,GROUPN]]] 修改用户所属的附加组,原来的附加组会被覆盖

-a, --append: 与-G一同使用,用于为用户追加新的附加组

-c, --comment COMMENT:修改注释信息:

-d, --home home_dir:修改用户的家目录,用户原有的文件不会被移至新位置

-m , --move--home : 只能与-d选项一同使用,用于将原来的家目录移动到新的家目录

-l, --login new_login:修改用户名

-s , --shell SHELL:修改用户的默认shell

-L ,-- lock :锁定用户密码
-U, --unlock: 解锁用户的密码

userdel命令:删除用户属性

userdel [选项] 登录

-r: 删除用户时一并删除其家目录

练习1:创建用户gentoo ,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为50001)

练习2:创建用户fedora ,其注释信息为“Fedora core”默认shell为/bin/tcsh

练习3:修改gentoo用户的家目录为/var/tmp/gentoo,要求原有文件仍能被用户访问

练习4:为gentoo新增附加组netadmin

passwd命令:

passwd  [-k]  [-l]  [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i  inactivedays] [-S] [--stdin] [username]

(1)passwd:修改用户自己的密码

(2)passwd username:  修改指定用户的密码

-l, -u :锁定和解锁用户

-d: 清除用户密码

-e date: 过期期限,日期

-i  days: 非活动期限

-n days: 密码的最短使用期限

-x  days:密码的最长使用期限

-w days:警告期限

--stdin:

echo "password" | passwd --stdin username 

gpasswd命令

gpasswd[选项] group

-a username: 向组中添加用户

-d username: 从组中移除用户

newgrp命令: 临时切换指定的组为基本组

newgrp [-] [group]

-: 会模拟用户重新登录以实现重新初始化其工作环境:

chage命令:更换用户密码过期信息

chage [选项] [登录]

id命令:显示是用户的真实和有效信息

id [OPTION]... [USERNAME]

-u :仅显示有效的UID

-g :仅显示用户基本组ID

-G :仅显示用户所属组所有组的ID

-n :显示名字而非ID

id -n 

su命令:switch user

登录式切换:会通过重新读取目标用户的配置文件来重新初始化

su - username

su -l username

非登录式切换:不会读取目标用户的配置文件进行初始化

注意:管理员可无密码切换至其他任何用户:

 - c 'command': 仅以指定用户的身份运行此处指定的命令:

其他几个命令:chsh, chfn ,finger, whoami, pwck ,grpck

权限管理:

ls -l

rwxrwxrwx

左三位:定义user(owner)的权限

中三位:定义group的权限

右三位:定义other的权限

进程安全上下文

进程对文件的访问权限应用模型

进程的属主与文件的属主是否相同:如果相同,则应用属主权限

否则,则检查进程的属主是否属于文件的属组:如果是,则应用属组权限

否则,就只能应用other的权限

权限:

r:  readable, 读

w: writeable, 写

x: excuteable ,执行

文件:

r:可获取文件的数据

w:可修改文件的数据

x:可将此文件运行为进程

目录:

r: 可使用ls命令获取其下的所有文件列表

w: 可修改此目录下的文件列表, 即创建或者删除文件

x: 可cd至此目录中,且可使用ls -l 来获取所有文件的详细属性信息

mode: rwxrwxrwx 

ownership : user , group

 权限组合机制:

--- 000  0

--x 001  1

-w- 010  2

-wx 011  3

r--  100   4

r-x  101   5

rw- 110   6

rwx 111   7

权限管理命令:

chmod命令:

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...

三类用户:

u:属主

g:属组

o:其他

a:所有

(1)chmod [OPTION]... MODE[,MODE]... FILE...

mode表示法:

赋权表示法:直接操作一类用户的所有权限rwx

u=

g=

o=

a=

授权表示法:直接操作一类用户的一个权限位r,w,x

u+, u-

g+, g_

o+, o-

a+, a-

(2)chmod [OPTION]... OCTAL-MODE FILE...

(3)chmod [OPTION]... --reference=RFILE FILE...

选项:

-R, --recursive:递归修改

注意:用户仅能修改属主为自己的那些文件的权限

chown命令:

chown [OPTION]... [OWNER][:[GROUP]] FILE...

          chown [OPTION]... --reference=RFILE FILE...

选项:

-R递归修改

chgrp命令:

           chgrp [OPTION]... GROUP FILE...

           chgrp [OPTION]... --reference=RFILE FILE...

注意:仅管理员可以修改文件的属主和属组

umask: 文件的权限反向掩码,遮罩码

文件:

666-umask

目录:

777-umask

注意:之所以文件用666区减,表示文件默认不能拥有执行权限:如果减的的结果中有执行权限,则需要将其加1

umask:023

666-023=644

777-023=754

umask命令:

umask:查看当前umask
umask MASK :设置umask

注意:此类设置仅对当前shell经常有效

练习:

1.新建系统组mariadb,新建系统用户mariadb,属于mariadb组,要求其没有家目录,且shell为/sbin/nologin,尝试切换至用户,查看其命令提示符:

2.新建GID为5000的组mageedu,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名:

3.新建用户fedora,其家目录路为/users/fedora,密码同用户名:

4.新建用户web,其家目录为/users/web,删除web用户,但保留其家目录:

5.为用户gentoo和fedora新建附加组mageedu

6.复制目录/var/log至/tmp/目录,修改/tmp/log及其内部的所有文件属组为mageedu,并让属组队目录本身拥有写权限

install命令:

install - copy files and set attributes

单元复制:

       install [OPTION]... [-T] SOURCE DEST

多源复制:
       install [OPTION]... SOURCE... DIRECTORY
       install [OPTION]... -t DIRECTORY SOURCE...

创建目录
       install [OPTION]... -d DIRECTORY...

常见选项

-m , --mode=MODE: 设定目标文件权限,默认为755

-o , -- owner=OWNER:设定目标文件属主

-g ,-- group=GROUP :设定目标文件属组

-d   创建目录

mktemp命令:

mktemp - create a temporary file or directory

mktemp [OPTION]... [TEMPLATE]

常用选项:

-d :创建临时目录

注意:mktemp会将创建的临时文件名直接返回,因此,可以直接通过命令引用保存起来

【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: