Linux 账号和权限管理

一、管理用户账号

1.1 Liunx 用户的分类

超级用户:root 用户是 Linux 操作系统中默认的超级用户账号,对本主机拥有至高 无上的权限,类似于 Windows 操作系统中的 Administrator 用户。只有当进行系统 管理、维护任务时,才建议使用 root 用户登录系统,日常事务处理建议只使用 普通用户账号

普通用户:普通用户账号需要由 root 用户或其他管理员用户创建,拥有的权限受 到一定限制,一般只在用户自己的宿主目录中拥有完整权限

程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运 行,如 bin、daemon、ftp、mail 等,一般不会用来登录系统的,它主要是用于维持某个服务的正常运行.如:ftp,apache
 

UID 身份标识

每一个账号都有一个自己的身份表示,称为UID

用于区分和管理用户

UID 的分类

    管理员组:root, 0
    系统组:1-499(centOS 6), 1-999(centOS 7)
    普通组:500+(centOS 6), 1000+(centOS 7)
 

1.2 用户账号的文件

/etc/passwd : 保存用户名称、宿主目录、登录Shell等基本信息

root:用户名,用户名仅是为了方便用户记忆。Linux系统是通过UID来识别用户身份,分配用户权限。

虽然"x"并不表示真正的密码,但也不能删除,如果删除了 "x",那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)
x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件

Linux系统把真正的加密密码串放置在/etc/shadow文件中,此文件只有root用户可以浏览和操作,最大限度地保证了密码的安全

和 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段

第一列:账户名
 

第二列:存放真正加密的密码,采用SHA512散列算法,更加安全  加密原来用MD5 或 DES
!!和*表示没有密码不能登陆,新创建用户也是!!,如果密码前面显示双感叹号表示该账户被锁定了

第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日,date -d "1970-01-01 18983  days"可以查看哪一天改过

第四列:多久之后才可以修改密码,如果是 0,则密码可以随时修改
最小修改间隔时间 ,也就是说 该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0 则随时修改密码,如果是10 则代表密码修改后10天之内不能再次修改密码,此字段是为了针对某些人频繁更改账号密码而设计的。

第五列:密码有效期,默认99999(273年),表示永久生效

第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 "修改密码" 的警告信息

第七列:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用

第八列:账号失效时间,使用自  1970 年 1 月 1 日以来的总天数作为账户的失效时间
 

第九列:保留,未使用

1.3.管理用户常用基础命令

1.3.1 useradd 命令

添加用户账号

useradd    [ 选项 ]    用户名

创建指定UID为1200 名为csdn的用户

-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g:指定用户的基本组名(或使用 GID 号)
-G:指定用户的附加组名(或使用 GID 号)
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录
-s:指定用户的登录Shell
 

1.3.2 chage 命令 

用来修改帐号和密码的有效期限,针对目前系统已经存在的用户

chage    [ 选项 ]    用户名

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。chage -M 60 root
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期

1.3.3 passwd 命令

passwd    [ 选项 ]    用户名

-d:清空指定用户的密码,仅使用用户名即可登录系统
-l:锁定用户账户
-S:查看用户账户的状态(是否被锁定)
-u:解锁用户账户

1.3.4 usermod 命令

修改用户参数

usermod    [ 选项 ]    用户名

-l:更改用户账号的登录名称(Login Name)
-L:锁定用户账户
-U:解锁用户账户

-u:修改用户的 UID 号
-d:修改用户的宿主目录位置
-e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g:修改用户的基本组名(或使用 GID 号)
-G:修改用户的附加组名(或使用 GID 号)
-s:指定用户的登录 Shell

1.3.5 userdel 命令

删除用户命令

userdel    [ -r ]    用户名

添加 -r 选项时,表示连用户的宿主目录一并删除
 

1.4 用户账号的初始配置文件

添加一个新的用户账号后,useradd 命令会在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件 包括“.bash_logout”、“.bash_profile”和“.bashrc”。其中,“.bash_profile”文件中的命令将在该 用户每次登录时被执行;“.bashrc”文件中的命令会在每次加载“/bin/Bash”程序(当然也包括登 录系统)时执行;而“.bash_logout”文件中的命令将在用户每次退出登录时执行

1  .bash_profile:是一个在用户登录时自动执行的脚本文件,通常用于配置用户的 shell 环境。它可以用来设置环境变量、别名、路径等

2 .bashrc :是一个在 Bash shell 启动时(通常是交互式登录和非登录 shell)自动执行的脚本文件。它用于配置用户的 shell 环境,包括设置环境变量、别名和函数等
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。

一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了

3 .bash_logout :是在用户退出 Bash shell 时自动执行的脚本文件。它通常用于清理操作或执行一些在用户退出时需要完成的任务

二、管理组账号文件

与组账号相关的配置文件也有两个,分别是/etc/group 和/etc/gshadow。前者用于保存 组账号名称、GID 号、组成员等基本信息,后者用于保存组账号的加密密码字串等信息(但是很少使到)

某一个组账号包含哪些用户成员,将会在 group 文件内最后一个字段中体 现出来(基本组对应的用户账号默认可能不会列出),多个组成员之间使用 “,”(逗号)分隔

grep "^root" /etc/group  #//检索root 组包括哪些用户


grep "root" /etc/group  //检索哪些组包括root 用户

2.1 管理组常用命令

2.1.1 groupadd 命令

创建组

groupadd    [ 选项 ]    组账号名

groupadd  [-g GID]  组账号名
创建指定  GID号为120,组名为pokemon

2.1.2 gpasswd 命令

gpasswd    [ 选项 ]    [ 用户 ]    [ 用户组 ]

-a:添加用户到组
-d:从组删除用户 
-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组

2.1.3 groupdel命令

删除组

groupdel    组账号名

三、查询账号信息

3.1 groups 命令

显示用户组信息

groups    用户名

3.2 id 命令

查询身份标识

id    用户名

3.3 finger 命令

查询用户账号的详细信息

finger    用户名

3.4 w、who、users 命令

查询已登录到主机的用户信息

通常使用tty来简称各种类型的终端设备,Centos7系统, tty1表 示图形界面,tty2-tty6表示 文字界面,可以用Ctrl+Alt+F1-F6切换。

按Ctr1+A1t+F2登陆, 执行w命令,查看使用的终端就是tty2

User:登录用户名
TTY:登录后系统分配的终端号
From:远程主机名,即从哪登录的
login@:何时登录
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。
JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行

pts说明是用远程工具连接的,比如1xshell,后面的数字代表登录的时间顺序,越小证明登录的越早

四、文件/目录的权限和归属

4.1 文件/目录的三种权限

查看目录和文件的属性

root 用户、root 组
如“drwxr-xr-x”和“-rw-r--r--”。权限字段由四部分组成,各自的含义如下所述

第 1 个字符:表示该文件的类型,可以是 d(目录)、b(块设备文件)、c(字符设备文 件)、“-”(普通文件)、字母“l”(链接文件)等

第 2~4 个字符:表示该文件的属主用户(User)对该文件的访问权限

第 5~7 个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限

第 8~10 个字符:表示其他任何用户(Other)对该文件的访问权限

第 11 个字符:这里的“.”与 SELinux 有关

4.2 chmod 命令

字符组合修改:

数字组合修改:

述格式中,字符组合“[ugoa…][+-=][rwx]”或数字组合的形式表示要设置的权限模式。其中,“nnn”为需要设置的具体权限值,如“755”“644”等;而 “[ugoa…][+-=][rwx]”的形 式中,三个组成部分的含义及用法如下所述。

“ugoa”表示该权限设置所针对的用户类别。“u”代表文件属主,“g”代表文件属组内的用户,“o”代表其他任何用户,“a”代表所有用户(u、g、o 的总和)

“+-=”表示设置权限的操作动作。“+”代表增加相应权限,“-”代表减少相应权限,“=” 代表仅设置对应的权限

4.3 chown 命令

修改文件/目录 属主、属组

chown    属主    文件或目录

chown    :属组    文件或目录

chown    属主:属组    文件或目录

示例:

4.4 umask 命令

umask 命令用于设置文件权限掩码,它决定了在创建新文件或目录时默认的权限设置。在 Linux 操作系统中使用 umask 命令可以限制新建文件和目录的权限。具体来说umask 命令会从新创建的文件或目录权限中去除指定的权限位。

常见的 umask值包括:

  • 002:表示不会为其他用户组分配写权限
  • 022:表示不会为其他用户组以及其他用户分配写权限

使用 umask 命令时,可以通过 octal 格式指定权限掩码的值。与 umask 命令关联的权限位包括读取(4)、写入(2)和执行(1),它们的组合可以得到不同的权限设置

例如,如果当前的 umask 值为 027,当创建新文件时,文件权限将是默认权限 640(rw-r-----),目录则是默认权限 750(rwxr-x—)

要查询当前的 umask 值,可以直接在终端上输入 umask 命令。要设置新的 umask 值,可以使用 umask 命令并跟随所需的权限掩码值,如 umask 022

需要注意的是umask 命令设置的是默认权限掩码,实际权限还受到系统或用户个人权限设置的影响。如果需要特定的文件或目录权限,可以在创建时显式指定权限参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值