Linux账户与权限管理(包含useradd、userdel、passwd、usermod、chmod等命令)

Linux账户与权限管理

一、管理用户账户

1.1用户账户概述

1.1.1.用户账户

超级用户 root用户
普通用户 由管理员创建,在自己的宿主目录下才有完整权限
程序用户 一般不允许登录到系统,如bin、ftp、mail

1.1.2.UID和GID号

Linux系统中的每一个用户账号和组账号都有一个数字形式的身份标记,称为UID(User
IDentity,用户标识号)和GID(Group IDentify,组标识号)。

UID号 GID号
超级用户 固定值0 固定值0
程序用户 1-999 1-999
普通用户 1000-60000 1000-60000

1.1.3.用户账户文件

1保存用户名称、宿主目录、登录shell等基本信息(任何用户都可读取)
文件位置: /etc/passwd
root:x :0:0:root:/root:/bin/bash ###7个字段,用:隔开

1 用户名
2 密码占位符“X”或密码加密的字符串
3 UID号 (主)
4 GID号 (组)
5 用户名描述信息
6 宿主目录
7 登录shell信息,一般是/bin/bash
读取方式举例:
cat /etc/passwd
head - 2 /etc/passwd
tail -1 /etc/passwd
注意:
结尾是/sbin/nologin ###这些程序账号是用来访问服务,不能用来登录系统
2保存用户的密码、账号有效期等信息(默认只有root用户能够读取)
文件位置: /etc/shadow
root: 6 6 SBb76V0:17470:0:99999:7::: ###9个字段,用:隔开
1 账户名
2 mde5密码加密信息 ###*或!!则不等登录 如空则表示无需密码也可以登录
###做项目的时候,所有设备上线都要弱口令扫描,如果结果说密码强度不高,则需要重新设置密码。
如果过弱口令方案,你可以备份shadow文件,然后进shadow 删除没过的账号。
3 上次修改密码时间 1970年1月1号到最近修改密码间隔的天数
4 密码的最短有效天数,如0则不限制
5 密码的最长有效天数,如99999则不进行限制
6 提前多少天告警,用户口令将过期,默认是7
7 密码过期后多少天内禁用此用户
8 账号失效时间,1970年1月1日计算,默认是空则账号永久使用
9 保留字段,目前没使用

1.2用户账号管理

1.2.1 useradd 命令–添加用户账号

useradd命令的各自选项如下:
-u 指定UID多少
-d 指定宿主目录位置
-e 指定账户失效时间,格式YYYY-MM-DD
-g 指定用户基本组
-G 指定用户附加组 ###既可以属于用户组也可以同时属于其他
-M 不建立宿主目录
-s 指定登录的shelluser
举例:
useradd -M -G tom lisi1 ###添加lisi1账户,它没有家目录同时属于tom组
useradd tom ###添加tom账号
cat /etc/passwd
####tom: x:500:501::/home/tom:/bin/bash

passwd tom
##abc123###设置密码abc123

who am i ###看下哪个账号
[tom@localhost /]$ who am i
tom pts/1 2017-11-10 21:53 (192.168.1.100)

1.2.2 userdel命令–删除用户账号

结合“-r”可以同时删除宿主目录
userdel -r tom ### 如果tom在登录的时候是无法删除的

1.2.3用户账号的初始配置文件(3个重要隐藏文件)
.bash_profile --文件中命令将在该用户每次登录被执行
.bashrc --文件中的命令在每次加载/bin/Bash 程序(包括登录)执行
.bash_logout --文件中的命令将在每次退出登录时执行

###.bashrc和.bash_profile都是开机启动,.bashrc 要比.bash_profile 更加精细
###.bash_logout 可以理解为干坏事后擦脚印、踪迹。
###在’.bashrc’等文件中,我们可以添加自定义的可执行语句(Linux命令行,脚本控制语句等)来自动完成相应的任务。
例如:
【root@kgc~】#vi /etc/bashrc
……… #省略部分内容
alias myls=“/bin/ls -lhr”

1.2.4 passwd命令–设置/更改用户口令

passwd tom —账户设置密码
passwd的选项如下:
-d 清空密码
-l 锁定账户
-S 查看账户是否被锁定
-u 解锁用户账户
注意:
vi /etc/shadow ##进去删除tom的密码,然后在本电脑的终端切换是不需要密码的,直接进,但是远程是登不了的。

1.2.5 usermod命令–修改用户账号属性

usermod的选项如下
-u 修改用户UID
-d 修改用户的宿主目录位置
-e 修改用户账户失效时间 可以YYYY-MM-DD日期
-g 修改用户的基本组名
-G 修改用户的附加组名
-s 指定用户登录的shell
-l 更改用户登录的名称
-L 锁定账户
-U 解锁用户账户

二、管理组账号

1.组账号管理
1.1组账号文件
文件位置: /etc/group;/etc/gshadow
1.2添加、删除、修改组账号
(1)groupadd 命令–添加组账号
需要指定GID时,使用“-g”选项
(2)gpasswd 给组设置密码
gpasswd -a 添加组成员
gpasswd -d 删除组成员
案例:gpasswd -a tom root ###将tom用户添加到root组
[root@localhost ~]# groups tom 查看tom属于哪个组
tom : tom1 root
(3)groupdel命令–删除组账号
1.3查询账户信息
(1)id tom ###查看tom的uid、gid等标识信息
(2)[root@localhost ~]# groups tom 查看tom属于哪些组
tom : tom root adm
(3)finger命令–查询用户账号的登录名称、完整目录、登录shell等登录属性
mount /dev/cdrom /mnt
rpm -ivh /mnt/Packages/finger-0.17-39.el6.x86_64.rpm
##安装 fingerID
rpm -e finger
##卸载 finger
(4)w命令–查询当前主机中的用户登录情况,列出登录账号名称、所在终端、登录时间、来源地点等信息
(5)who ####多少用户登录系统
root tty1 2017-11-12 20:51 (:0)
root pts/0 2017-11-12 20:51 (:0.0)
who |wc -l ######显示有多少人 登录系统

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

在Linux文件系统的安全模型中,为系统中的文件赋予了两个属性,访问权限和文件所有者,简称权限和归属,其中权限包括读取R-4、写入W-2、可执行X-1三种基本类型,归属包括属主(拥有该文件的用户账号)、属组(拥有该文件的组账号)。

3.1查看文件/目录的权限及归属

第一个字符代表的文件类型:
普通文件(-): 是记录在存储介质上的ASCII或二进制流。
目录文件(d): 是包含若干个文件和子目录的文件。
设备文件(b,c): 代表连接在系统上的物理设备
字符设备©,又叫raw设备:读写与存储之间没有任何缓冲,一次读写1byte。如磁带
块设备(b):读写与存储之间有缓冲,一次读写一个block。如终端或磁盘设备。
符号链接(l) :是指向另一个文件的文件。
[root@localhost ~]# ls -ld /var/log/messages
-rwxrw—x 1 root root 2743497 2015-07-22 21:31 /var/log/messages

权限字段 含义

  • 文件类型
    rwx Owner权限
    rw Group权限
    x Other权限
    1 文件连接数
    root 所有者
    root 组所有者
    2743497 文件大小
    2015-07-22 21:31 时间戳
    messages 文件名
    文件权限说明:
    读取r -4:允许查看文件内容、显示目录列表
    写入w -2:允许修改文件内容,允许在目录中新建、移动
    可执行x -1:允许运行程序、切换目录

默认文件权限根据umask值设置(默认为022)
新文件权限为rw-r-r(644)
666-022=rw-r-r
如何修改Umask值呢?
1、临时修改umask 066 (这个066根据的根据的需求定,可以理解成反子网掩码,这个是临时的)
2、vi /etc/bashrc 最后一样插入umask 066(这个是永久生效的)
【root@localhost tmp】#vim /etc/profile
两个文件的内容是一样的
搜索umask,找到如下代码,不算第一位的特殊权限
if [ $UID -gt 199 ] && [ “id -gn” = “id -un” ]; then

          unmask 002   ##表示uid大于等于199的默认umask值,表示普通用户

else

      umask 022     ##表示uid小于199的默认umask值,表示root

修改后需要重新读取一下

/etc/bashrc或/etc/profile
[root@lewis ~]# source /etc/profile
[root@lewis ~]# source /etc/bashrc

3.2设置目录/文件的权限及归属

3.2.1.设置文件/目录的权限chmod

命令格式:
chmod 【ugoa】【+/-】【rwx】文件…
chmod nnn 文件… ##数字组合“nnn”表示要设置的权限模式,如“755”
“【ugoa】【+/-/=】【rwx】”三个部分的含义如下:
“ugoa”表示该权限设置所针对的用户类别,“u”代表文件属主,“g”代表文件属组内的用户,“o”代表其他任何用户,“a”代表所有用户(u、g、o)
“+/-/=”表示设置权限的操作动作,“+”代表增加相应权限,“-”代表减少相应权限,“=”代表仅设置对应的权限
“rwx”是权限的字符组合形式,可以拆分使用
示例:
chmod g+w 10.txt ##给10.txt属组内的用户增加w权限
chmod o-r 10.txt ##给10.txt其他的用户减少r权限
chmod a=rw 10.txt ##给10.txt所有的用户仅设置rw权限

3.2.2.设置文件/目录的归属chown

chown 【属主 :属组】 文件
chown :tom 10.txt #######10.txt 属组变为tom
chown tom 10.txt #######10.txt 属主变为tom
chown jack:jack 10.txt #######10.txt 属主变为jack,属组变为jack

注意:
在修改目录权限会用到-R 选项,代表递归修改目录下的所有子项的权限或归属

猜你喜欢

转载自blog.csdn.net/chengu04/article/details/106742041