linux权限 www用户,linux用户权限管理

1基本概念

Linux是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号, 然后以这个账号的身份进入系统。

为了实现资源分派(系统管理员的权利)及出于安全的考虑,必须对用户进行不同权限的分配。用户组便于更高效地管理用户权限。

用户操作Linux需要经过三个步骤的权限认证:

Authentication:认证

Authorization:授权

Audition审计-->权限是否符合条例

操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。用户组就相当于多个用户的容器,有的系统又叫角色(便于更高效地管理用户权限);在linux系统中,用户组也有一个ID,GID。

1.1 linux操作系统用户

在linux中,用户分为两大类:管理员用户和普通用户,其中普通用户有分为系统用户和登录用户;

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

登录用户:就是我们一般使用登录linux的用户。

用户标识:user id,UID

通常使用16bits二进制数字表示(0-65535)

管理员的用户标识:0

普通用户:1-65535

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

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

linux通过名称解析库“/etc/passwd”文件解析用户名与用户ID之间的对应关系。

`~]# head /etc/passwd | column -ts:` 列按冒号对其查看

/etc/passwd:用户信息库

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

name: 用户名

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

UID:

GID:用户所属的主组的ID号;

GECOS:注释信息

directory:用户的家目录;

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

1.2 linux操作系统用户组

在Linux中,用户组分类方式有三种:

1、管理员组、普通用户组(系统用户组,登录用户组)

2、用户的基本组、用户附加组

3、私有组(组名同用户名,且只包含一个用户;)、公共组(组内包含了多个用户;)

用户组标识:group id,GID

通常使用16bits二进制数字表示(0-65535)

管理员的用户组标识:0

普通用户组:1-65535

系统用户组:1-499(Centos6)、1-999(Centos7)

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

linux通过名称解析库“/etc/group”文件解析用户名与用户ID之间的对应关系。

/etc/group:组的信息库

group_name:passwd:GID:user_list

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

1.3 linux操作系统密码

用户在登录linux系统时,会对比password与之前保存在“/etc/shadow”、“/etc/gshadow”文件中的密码是否一致。

密码的使用策略:

1、使用随机密码;

2、最短长度不要低于8位;

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

4、定期更换;

生成有效密码的命令:

~]#

~]# openssl rand -base64 32|tr A-Z a-z|cut -c 1-8

~]# strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 8 | tr -d '\n'; echo

~]# dd if=/dev/urandom bs=1 count=10 2>/dev/null | base64 -w 0 | rev | cut -b 2-9 | rev

加密算法(军备资源):算法+密码+salt=秘钥(使用秘钥对原文加解密操作):

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

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

密钥对:公钥(public key)、私钥(private key)

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

定长输出: 以16进制表示的输出

雪崩效应:密码中某一个字符改变,那么整个加密后的密钥都会改变

linux的密码加密方式使用单向加密算法,并且添加随机数(salt)计算得出的。

[root@localhost ~]# head -1 /etc/shadow

root:$6$ZNcau0h/$O396hKI/4ZAkVs/YfM82ViyToupcAQ3FMm.iP.7g73BuWoK7VjTnPOtpKA1u/P.8Y/eI.pCgeaBKm8XlPNw5h/:18071:0:99999:7:::

加密密码:使用$分隔,第一个段表示使用的加密算法,第二个段表示添加的salt。第三段表示加密后的密码.

系统识别算法ID

算法名称

1

md5:message digest,128bits

2

sha:secure hash algorithm,160bits

3

sha224

4

sha256

5

sha384

6

sha512

/etc/shadow:用户密码 (man 5 shadow)

用户名:加密的密码:最近一次修改密码的时间(从1970开始的天数):最短使用期限:最长使用期限:警告期段:密码禁用时间(非活动期限):账户过期期限:保留字段

092ca6e7a95085d60922a2647bc9a4c2.png

1.4Linux安全上下文:

运行中的程序:进程 (process)

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

进程所能够访问的所有资源的权限取决于进程的发起者的身份;

2权限管理

linux的文件管理权限分为读、写和执行

]# ll grub.cfg

-rw-rw-r--+ 1 root root 4253 Jun 24 11:44 grub.cfg

共分为五个部分:

-rwxrwxrwx+:

-:表示文件类型

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

中三位:定义group的权限;

右三位:定义other的权限

+:是否启用facl

进程安全上下文:

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

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

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

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

权限:

r:readable, 读

w:writable, 写

x:excutable,执行

权限对文件的作用:

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

3、相关命令

3.1用户管理命令

useradd命令{非常重要****}:创建用户

useradd [选项] 登录名

-u, --uid UID:指定UID;

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

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

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

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

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

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

-m 创建家目录(没什么用)

-M,--no-create-home 不创建家目录

-f, --inactive 密码禁用时间

注意:创建用户时的诸多默认设定配置文件为/etc/login.defs 操作系统厂家使用

useradd -D:显示创建用户的默认配置;

useradd -D 选项: 修改默认选项的值;useradd -D -s /bin/tcsh 修改shell

修改的结果保存于/etc/default/useradd文件中;可用自己使用

usermod命令:修改用户属性

usermod [选项] 登录

-u, --uid UID:修改用户的ID为此处指定的新UID;

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

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

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

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

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

-m, --move-home:

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

-L, --lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";

-U, --unlock:解锁用户的密码;

userdel命令:删除用户

userdel [选项] 登录

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

id命令:显示用户的真实和有效的UID和GID

id [OPTION]… [USERNAME]

-u:仅显示有效的UID;

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

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

-n:显示名字而非ID;一般与g一起使用:-ng

su命令:switch user

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

su - USERNAME

su -l USERNAME

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

su USERNAME

注意:管理员可无密码切换至其它任何用户;其它用户在切换用户时必须输入密码。

-c “COMMAND”:仅以指定用户的身份运行此处指定的命令

例如:su - USERNAME -c “whoami”

3.2 用户组管理命令

groupadd命令:添加组

groupadd [选项] group_name

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

-r:创建系统组;

groupmod命令:修改组属性

groupmod [选项] GROUP

-g GID:修改GID

-n new_name:修改组名

groupdel 命令:删除组

groupdel [选项] GROUP

3.3 用户及用户组练习

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

groupadd -g 5001 peguin

groupadd -g 5000 distro

useradd -u 4001 -G distro,peguin gentoo

练习2:创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh;

useradd -c "Fedora Core" -s /bin/tcsh fedora

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

usermod -d /var/tmp/gentoo/ gentoo

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

groupadd netadmin

usermod -aG netadmin gentoo

3.4 密码管理命令

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

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

(2) passwd USERNAME:修改指定用户的密码,但仅root有此权限;

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

-d:清除用户密码串;

-e DATE: 账户过期期限,日期;

-i DAYS:密码非活动期限;

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

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

-w DAYS:警告期限;

--stdin【****批量修改密码】

echo "PASSWORD" | passwd --stdin USERNAME

gpasswd命令:设置组密码

组密码文件:/etc/gshadow

gpasswd [选项] group

-a USERNAME:向组中添加用户

-d USERNAME:从组中移除用户

newgrp命令:临时切换指定的组为基本组;退出登录后切换就失效了

newgrp [-] [group]

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

newgrp a b 切换用户b的基本组为a,并登录,如果组a本来就不是用户b的附近组,此时可能要求输入组密码

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

chage [选项] 登录名

-d --lastday set date of last password change to LAST_DAY 最近日期 将最近一次密码设置时间设为“最近日期”

-E --expiredate set account expiration date to EXPIRE_DATE 过期日期 将帐户过期时间设为“过期日期”

-W --warndays set expiration warning days to WARN_DAYS 警告天数 将过期警告天数设为“警告天数”

-m --mindays set minimum number of days before password change to MIN_DAYS 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”

-M --maxdays set maximim number of days before password change to MAX_DAYS 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”

-h, –help 显示此帮助信息并推出

-I, –inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态

-l, –list 显示帐户年龄信息

-R, –root CHROOT_DIR chroot 到的目录

其他几个命令用户管理命令:

chsh:修改shell

chfn:修改用户基本信息

finger:显示用户基本信息

pwck:检查用户的密码是否有问题

grpck:检查组文件的完整性

whoami

(pwconv、pwunconv、grpconv、grpunconv这四个基本不用)

3.5 权限管理命令

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...

使用8进制的数字进行授权

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

选项:

-R, --recursive:递归修改

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

从属关系管理命令:chown, chgrp

chown命令:

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

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

选项:

-R:递归修改

chgrp命令:

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

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

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

思考1:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件?

不能修改文件内容,但可删除文件

思考2:用户对目录有什么权限时,可以使用mv命令。

执行权限

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;尝试root切换至用户,查看其命令提示符;

useradd -rM -s /sbin/nologin mariadb

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

groupadd -g 5000 mageedu

mkdir -p /users

useradd -d /users/gentoo gentoo

echo gentoo | passwd --stdin gentoo

3、新建用户fedora,其家目录为/users/fedora,密码同用户名;

useradd -d /users/fedora fedora

echo fedora | passwd --stdin fedora

4、新建用户www, 其家目录为/users/www;删除www用户,但保留其家目录;

useradd -d /users/www www

userdel www

5、为用户gentoo和fedora新增附加组mageedu;

usermod -aG mageedu gentoo

usermod -aG mageedu fedora

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

cp -rf /var/log /tmp

chown -R :mageedu /tmp/log

chmod -R g+w /tmp/log

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:设定目标文件属组;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值