Linux的用户与权限管理

1、linux操作系统用户及用户组

Linux操作系统是多任务(Multi-tasks)多用户(Multi-users)分时操作系统,linux操作系统的用户就是让我们登录到linux的权限;每当我们使用用户名登录操作系统时,linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个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之间的对应关系。

/etc/passwd:用户信息库
name:password:UID:GID:GECOS:directory: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”文件中的密码是否一致。

加密算法
对称加密:加密和解密使用同一个密码
非对称加密:加密和解密使用的一对密钥
密钥对:公钥(public key)、私钥(private key)
单向加密:只能加密,不能解密;提取数据特征码;
定长输出:
雪崩效应:密码中某一个字符改变,那么整个加密后的密钥都会改变

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

系统识别算法ID 算法名称
1 md5:message digest,128bits
2 sha:secure hash algorithm,160bits
3 sha224
4 sha256
5 sha384
6 sha512

/etc/shadow:用户密码

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

[[email protected] ~]# head -1 /etc/shadowroot:$6$mNeLUb3TE/L9utIA$nVgYyR6KkPDFRYrZC2Q9hPRNgz8z3mDKsQKraE1Fy8.LBMQoldhK4Ne1ZZlolZg2362JgdrwmTRmSbI5PTe.j0::0:99999:7:::1212

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

2、权限管理

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

[[email protected] ~]# ls -l /bin/bash-rwxr-xr-x. 1 root root 960392 8月   3 2016 /bin/bash 1212

文件权限:
-rwxr-xr-x.
共分为五个部分:
-:表示文件类型
rwx:用户属主的权限
r-x:用户属组的权限
r-x:其他用户的权限
.:是否启用facl

权限:
r:readable,读
w:wirteable,写
x:excuteable,执行

权限对文件的作用:
r:可获取文件的数据;
W:可修改文件的数据;
x:可将此文件运行为进程;

权限对目录的作用:
r:可使用ls命令获取其下的所有文件列表;
w:可修改此目录下的文件列表;即创建或删除文件,包括子目录。
x:可cd至此目录中;且可使用ls -l来获取所有文件的详细属性信息;

权限组合 二进制数 十进制数
000 0
–x 001 1
-w- 010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7
练习:
rw-rw-r--   664rwxrwxr-x   775rwxr-x---   750rw-------   600 rwxr-xr-x   755123456123456

3、相关命令

3.1用户管理命令

useradd命令:创建用户
   useradd [选项] 登录名
       -u,–uid UID:指定UID,默认是上一个用户的UID+1
       -g,–gid GID:指定基本组ID,此组得事先存在;
       -G,–groups GROUP1[,GROUP2,……[,GROUPSN]]:指明用户所属的附加组,多个组之间用逗号分隔。
       -c,–comment COMMENT:指明注释信息
       -d,–home HOME_DIR:以指定路径为用户的家目录;通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件。
       -s,–shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中;
       -r,–system:创建系统用户
       -M:不为用户创建主目录
       -f,–incative INACTIVE:在密码过期后,账户被彻底禁用之前的天数,0表示立即禁用,-1表示禁用该功能。
   注意:创建用户时的诸多默认设定配置文件为/etc/login.defs

useradd -D:显示创建用户的默认选项配置;
useradd -D 选项:修改默认选项的值;
       修改的结果保存于/etc/default/useradd文件中;可以直接修改此文件来实现。

usermod命令:修改用户属性
   usermod [选项] 登录名
   -u,–uid UID:修改用户的ID为此处指定的新UID;
   -g,–group GROUP:修改用户所属的基本组;此组得事先存在;
   -G, –groupsGROUP1[,GROUP2,…[,GROUPN]]]:修改用户所属的附加组,原来的附加组会被覆盖;
   -a, –append:与-G一同使用,用于用户追加新的附加组;
   -c,–comment COMMENT:修改注释信息;
   -d,–home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置;
   -m,–move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
   -l,–login NEW_LOGING:修改用户名;
   -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:修改组名

groupadd命令:删除组
   groupdel [选项] GROUP

3.3 用户及用户组练习

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

groupadd -g 5000 distro
groupadd -g 5001 penguin
useradd -u 4001 -G distro,penguin

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

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

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

usermod -d /var/tmp/gentoo -m gentoo

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

group netadmin
usermod -a -G netadmin1234567891011121314151617181912345678910111213141516171819

3.4 密码管理命令

passwd命令:
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” | passed –stdin USERNAME

[[email protected] ~]# echo "hadoop" | passwd --stdin hadoop更改用户 hadoop 的密码 。
passwd:所有的身份验证令牌已经成功更新。                123123

gpasswd命令:
用户组密码文件:/etc/gshadow

gpasswd [选项] group
   -a USERNAME:向组中添加用户,作为附加组
   -d USERNAME:从组中删除用户

newgrp命令:临时切换指定的组为基本组;
newgrp [-] [group]
   -:会模拟用户重新登录以实现重新初始化其工作环境
注意:
若指定组设定了密码:
(1)如果用户的附加组是要切换到的组名,那么不需要密码可以直接切换到指定组。
(2)如果用户的附加组不包含要切换的组名,那么需要输入密码才能切换到指定组。
若指定组没有设定密码:所有用户都不可以直接切换到指定组;root用户除外。

chage命令:更改用户密码过期信息
   [[email protected] ~]# chage list root
   用法:chage [选项] 登录
   选项:
     -d, –lastday 最近日期        将最近一次密码设置时间设为“最近日期”
     -E, –expiredate 过期日期     将帐户过期时间设为“过期日期”
     -h, –help                              显示此帮助信息并推出
     -I, –inactive INACITVE       过期 INACTIVE 天数后,设定密码为失效状态
     -l, –list                                 显示帐户年龄信息
     -m, –mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
     -M, –maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
     -R, –root CHROOT_DIR         chroot 到的目录
     -W, –warndays 警告天数       将过期警告天数设为“警告天数”

其他几个命令用户管理命令:
chsh:修改shell
chfn:修改用户基本信息
finger:显示用户基本信息

[[email protected] ~]# fingerLogin     Name       Tty      Idle  Login Time   Office     Office Phone   Host
root      root       pts/0   20:33  May 17 14:47                           (192.168.126.1)
root      root       pts/1          May 18 12:56                           (192.168.126.1)12341234

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

[[email protected] ~]# pwck用户“ftp”:目录 /var/ftp 不存在
用户“pulse”:目录 /var/run/pulse 不存在
pwck:无改变   12341234

grpck:检查组文件的完整性

3.5 权限管理命令

chmod命令:
   chmod [OPTIONS]… MODE[,MODE]… FILE…
   chmod [OPTIONS]… OCTAL-MODE FILE…
   chmod [OPTIONS]… –reference=RFILE FILE…

三类用户:
u:属主
g:属组
o:其它
a:所有

(1)chmod [OPTIONS]… MODE[,MODE]… FILE…
MODE表示法:
   赋权表示法:直接操作一类用户的所有权限位;
   在赋予三类用户的权限不同时,则用逗号隔开;如果相同,可以合并授权。
       u=
       g=
       o=
       a=
   授权表示法:直接操作一类用户的所有权限位r,w,x:
   在赋予三类用户的权限不同时,则用逗号隔开;如果相同,可以合并授权。
       u+,u-
       g+,g-
       o+,o-
       a+,a-
(2)chmod [OPTIONS]… OCTAL-MODE FILE…
   使用十进制的数字进行授权

(3)chmod [OPTIONS]… –reference=RFILE FILE…
   参考文件权限授权;

选项:
   -R,–recursive:递归修改,对目录下的所有文件(包括子目录)都有效。
注意:用户仅能修改属主为自己的那些文件的权限;

从属管理管理命令:chown,chgrp
chown命令:
   chown [选项]… [OWNER][:[GROUP]] FILE…
   chown [选项]… [OWNER][.[GROUP]] FILE…
   chown [选项]… –reference=RFILE FILE…
   选项:
       -R:递归修改,对目录下的所有文件(包括子目录)都有效。

chgrp命令:
   chmod [选项]… GREOUP FILE…
   chmod [选项]… –reference=RFILE FILE…

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

思考1:用户对目录有写权限,但对目录下的文件没有写权限时,能否修改此文件内容?能否删除此文件?
不能修改文件的内容,但是能够删除此文件
思考2:用户对目录有什么权限时,可以使用mv命令。
执行权限12341234

umask:文件的权限反向掩码,遮罩码;
文件:
   666-umask
目录:
   777-umask
注意:之所以文件用666去减,表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1;

umask命令:
   umask:查看当前umask
   umask MASK:设置umask;

注意:此类设定仅对当前shell进程有效。

时间: 2024-10-10 14:58:44

Linux的用户与权限管理的相关文章

Linux的用户和权限管理

欢迎大家来到我的博客,首先声明此文是我的***作:若文中有不当之处,还请各位前辈大神多多指点,小生在这里先谢过了.生活总有各种不如意,对我来说眼前的一切就是最好的安排:说实话我并不是很喜欢软件这个专业,我是一个文科男,软件世界里的沟沟坎坎对我来说走起来真的有些吃力,来到大学莫名其妙的进了这个专业,成了IT大海里一个小石头.没办法,既来之则安之:唯有迎头向前才能彰显我辈精神啊:大学毕业我这个小石头便阴差阳错的接触到了软件运维这个行业,带着满满的信心怀揣着美好的前景我加入的Linux培训的大军.这不

初学linux的用户和权限管理

为了满足多人在同一台计算机上进行创建,使用及管理文件等操作,计算机系统为每个使用者提供了一个独一的标识,这个标识就是人们常说的用户. 但为了避免多个用户同时使用一个或多个文件而造成文件损坏,系统又为每个登入的用户根据自身需求给予对文件读写和运行的权限设定,系统通过用户登入的ID和密码进行身份认证,审核并授权给用户相对应的权限,于是又将用户分为管理员用户,普通用户和其它用户. 下面我们来看看在linux中管理员用户和普通用户最明显的区别. 如上图中我们以管理员root创建了一个名为cat的用户,也

实验03 Linux用户和权限管理

一.实验目的 熟悉Linux的用户和权限管理 二.实验环境 CentOS 6.5系统. 三.实验内容 1. 用户的添加.删除.修改 2. 用户组的添加.删除.组成员管理 3. 文件和目录的权限和权限掩码设置 4. 文件和目录的所有者和属组设置 5. 特殊权限的设置 四.实验步骤: (1) 查看/home目录下各目录的权限,了解普通用户主目录的权限设置特点 命令:_ls –ld /home_ (2) 查看当前用户默认权限掩码 默认权限掩码: _umask(0022)_ (3) 创建文件stufil

linux用户及权限管理

[文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也可以帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和各自的口令.用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录.实现用户账号的管理

【linux相识相知】用户及权限管理

linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管理员我对linux系统权限有哪些?作为一个普通的用户又可以对linux系统有哪些操作呢?这里就牵扯到了linux的用户类别和权限管理.本次博客就用户和权限管理作出详细的解释. 用户和组类型 在linux系统中,有着用户和组着两个概念,用户是被包含在组里面的. 用户可以分为以下2中类别: 管理员:也就

Linux中的用户及权限管理

用户及权限管理 Linux具有Muliti-task(多任务)Muliti-Users(多用户)的环境. 用户:为了保护所有使用计算机者的权益不受到损害,所以要实现资源的使用隔离机制,为了实现资源的使用隔离机制,就要标识每一个使用者,而这每一个使用者就是用户. 用户ID:每一个使用者的唯一标识,计算机用来识别使用者. 用户密码:用户的认证手段.Authenticationg(认证),Authorization(授权),Auditiong(审计) 3A 用户类别:分为管理员和普通用户,普通用户又分

Linux用户、用户管理的常见命令用法以及用户的权限管理

    用户和用户组的基本概念: Linux的用户是通过账号和密码登录到Linux系统的,而Linux主机并不会直接识别账号和密码,它只认识ID.那么Linux系统用户的ID分为以下类别: 系统管理员:root,0-UID 普通用户:1-65535-UID 普通用户有分为:系统用户和登录用户 系统用户:1-999-UID 登录用户:1000-65535-UID Linux用户组(GID)的分类: 管理员组:root,0(GID) 普通用户组:1-65535(GID) 普通用户组又分为: 系统组:

Linux学习笔记:用户的权限管理

在上周清明假期期间,我们仍然在紧张的学习中,今天我们学习了用户的权限管理,用户的权限管理顾名思义即为用户在使用操作系统时所能使用的权限及管理用户使用相应的命令为用户添加相应的权限,其中用户的权限分为普通权限,特殊权限及文件的特殊权限. 以下即为本堂课所学内容整理记录: 普通权限: 进程安全上下文: 1.判断进程的所有者是否为想要操作的文件的属主,如果是,就按照属主的权限进行授权: 如果不是,就转到第2条: 2.判断进程的所有者是否为想要操作的文件的属组中的成员,如果是,就按照属组的权限进行授权:

Linux运维 第四阶段 (五) MySQL用户和权限管理

Linux运维 第四阶段 (四)MySQL用户和权限管理 1.相关概念: >mysql用户: 类似VSFTPD虚拟用户: 密码,自己独有的加密机制,PASSWORD函数: 用户名@主机: 用户名16字符以内,主机(主机名.IP.网络地址.通配符(%,_): --skip-name-resolve(跳过名称解析,可提高用户连接速度) 账号是用来认证的: >RENAME USER  'old_name'@'host'  TO  'new_name'@'host;  (重命名用户) >权限,授