接51CTO:13 用户组和权限管理3

用户组和权限管理3

一、杂项知识整理

1、硬链接:写源文件可以是相对地址,相对于链接文件。例如

[root@localhost testdir]# ln ../etc/fstab aaa
ln: 无法创建硬链接"aaa" => "../etc/fstab": 无效的跨设备连接
[root@localhost testdir]# ln ../etc/fstab /tmp/aaa

2、cp -r /etc/skel/. /testdir/user1 复制文件夹内的所有文件而不复制..。如果用[root@localhost user]# cp -r /testdir/user.dir/.[^.]*  /tmp/user1,其目标只能是存在的并且只能复制隐藏文件。

3、adduser是useradd的软链接:

[root@localhost default]# ll `which useradd`
-rwxr-x---. 1 root root 114056 3月   6 2015 /usr/sbin/useradd
[root@localhost default]# ll `which adduser`
lrwxrwxrwx. 1 root root 7 7月  19 04:58 /usr/sbin/adduser -> useradd

4、组中有其它用户时删除无法删除组;

5、whoami查看的是当前用户是谁,而who am i查看的是谁在终端登录,即不管用su还是su -登录,只要root登录终端,who am i都显示root。

6、userdel命令:可以在/etc/login.defs文件中更改配置变量。

    -f 强制删除用户账号,即使用户仍然在登录,包括主目录和邮箱和同名的组

    -r 删除主目录和邮箱

7、id命令:查看用户相关信息:

    -u 查看UID

    -g 查看GID

    -G groups

    -n name

[root@localhost testdir]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost testdir]# id -G
0
[root@localhost testdir]# id -u
0

8、换个身份执行命令:su – user -c COMMAND

[root@localhost testdir]# su - user1 -c date
2016年 08月 03日 星期三 10:37:13 CST

9、chfn;chsh指定个人信息和指定shell:

[root@localhost ~]# chfn
Changing finger information for root.
名称 [root]: ^C
[root@localhost ~]# chsh
Changing shell for root.
New shell [/bin/bash]: ^C

10、groupadd

    -g 指定GID号

    -r 创建系统组

        centos7:ID<1000

    [root@localhost ~]# groupadd -r -g 589 servicetest    
    [root@localhost ~]# tail /etc/group
    harry:x:1009:
    sarah:x:1010:
    sales:x:3000:
    user1:x:2223:user1
    user2:x:2224:
    user3:x:2225:
    user4:x:2226:
    user5:x:2227:
    user6:x:2228:
    servicetest:x:589:

11、groupmod命令:-n 指定新名字 -g GID;

    groupdel删除组

    gpasswd 更改组密码

        -a USER 将user添加至指定组中

        -d USER 从指定组中移除用户user

        -A user1,user2….设置有管理权限的用户列表

    newgrp命令:临时切换基本组:如果用户本不属于此组,则需要组密码;如果没有设置密码则只有本组用户可以切换。

[user1@localhost ~]$ newgrp user3
密码:
无效的密码。
[user1@localhost ~]$ exit
登出
[root@localhost ~]# gpasswd user3
正在修改 user3 组的密码
新密码:
请重新输入新密码:
[root@localhost ~]# su - user1
上一次登录:三 8月  3 11:20:41 CST 2016pts/0 上
[user1@localhost ~]$ newgrp user3
密码:
[user1@localhost ~]$ groups
user3 user1

二、命令详解及事例

1、当需要同时创建多个用户时,useradd不能实现,其对象只能是一个,所以需要批量建立用户和创建密码:命令newusers和chpasswd,单独给一个用户设置密码也可以用echo user:PASSWD | chpasswd

    按格式新建一user个文件:格式为:用户:x:UID:GID:(注释或描述):/家目录(不存在目录):bash

[root@localhost testdir]# !cat
cat user
user1:x:2223:2223::/home/user1:/bin/bash
user2:x:2224:2224::/home/user2:/bin/bash
user3:x:2225:2225::/home/user3:/bin/bash
user4:x:2226:2226::/home/user4:/bin/bash
user5:x:2227:2227::/home/user5:/bin/bash
user6:x:2228:2228::/home/user6:/bin/bash
[root@localhost testdir]# newusers user

    按格式创建一个passwd文件,内容一一对应:格式为:用户:密码

[root@localhost user1]# cat /testdir/userpasswd 
user1:123456
user2:123456
user3:123456
user4:123456
user5:123456
user6:123456
[root@localhost user1]# cat /testdir/userpasswd | chpasswd

    完成后,将/etc/skel的隐藏文件复制到用户家目录并更改其权限,因为已经做过因此提示覆盖,最后便完成了创建批量用户,无家目录也可以登录但是无配置文件,邮件文件会在收到文件后自动生成,系统用户无家目录和邮箱

[root@localhost user1]# cp -rf /etc/skel/.[^.]* /home/user3
cp:是否覆盖"/home/user3/.bash_logout"? y
"/etc/skel/.bash_logout" -> "/home/user3/.bash_logout"
cp:是否覆盖"/home/user3/.bash_profile"? y
"/etc/skel/.bash_profile" -> "/home/user3/.bash_profile"
cp:是否覆盖"/home/user3/.bashrc"? y
"/etc/skel/.bashrc" -> "/home/user3/.bashrc"
cp:是否覆盖"/home/user3/.zshrc"? y
"/etc/skel/.zshrc" -> "/home/user3/.zshrc"
[root@localhost user1]# chown -R user4:user4 /home/user4
[root@localhost user1]# ll -a /home/user4
总用量 20
drwx------.  2 user4 user4   72 8月   2 01:41 .
drwxr-xr-x. 18 root  root  4096 8月   2 02:26 ..
-rw-r--r--.  1 user4 user4   18 8月   3 08:30 .bash_logout
-rw-r--r--.  1 user4 user4  193 8月   3 08:30 .bash_profile
-rw-r--r--.  1 user4 user4  231 8月   3 08:30 .bashrc
-rw-r--r--.  1 user4 user4  658 8月   3 08:30 .zshrc

2、chmod命令:见下篇

3、usermod命令:用户属性修改:

    -u UID 新UID

    -g GID 新基本组

    -a 添加附加组,只能和-G使用

    -G GROUP 新附加组,可以多个

        直接添加,原来的附加组将会被覆盖;若保留原有,则需要同时使用-a选项表示append;

        因此删除一个用户所有附加组有两种方法:直接使用-G覆盖;或者-G “”,但是两者还是有一些区别的。例如:

    [root@localhost testdir]# usermod  -aG user2,user3,user4 user1    
    [root@localhost testdir]# tail /etc/group
    natasha:x:1008:
    harry:x:1009:
    sarah:x:1010:
    sales:x:3000:
    user1:x:2223:
    user2:x:2224:user1
    user3:x:2225:user1
    user4:x:2226:user1
    [root@localhost testdir]# usermod -G "" user1
    [root@localhost testdir]# tail /etc/group
    natasha:x:1008:
    harry:x:1009:
    sarah:x:1010:
    sales:x:3000:
    user1:x:2223:
    user2:x:2224:
    user3:x:2225:
    user4:x:2226:
    user5:x:2227:
    user6:x:2228:
    [root@localhost testdir]# usermod -G user1 user1
    [root@localhost testdir]# tail /etc/group
    natasha:x:1008:
    harry:x:1009:
    sarah:x:1010:
    sales:x:3000:
    user1:x:2223:user1
    user2:x:2224:
    user3:x:2225:
    user4:x:2226:
    user5:x:2227:
    user6:x:2228:

    -s SHELL 新的默认shell

    -c “”  新的默认注释信息

    -d HOME 新家目录不会自动创建,原家目录中的文件不会同时移动至新的家目录;若要创建新家目录并移动原家目录数据,同时使用-m选项。

    -l login_name 新的名字

    -L 锁定用户,在/etc/shadow密码栏增加!

        一次只能设定一个!,解锁也解一个,而passwd锁定及解锁一次两个

    -U 解锁

    -e YYYY-MM-DD 指定用户账号过期日期

    -f INACTIVE 设定非活动期限

4、chown命令:见下篇

5、passwd命令:修改指定用户的密码,仅root用户权限;或修改自己的密码:

    -l 锁定指定用户

    -u 解锁指定用户

    -e 强制用户下次登录修改密码:

[root@localhost ~]# passwd -e user3 
正在终止用户 user3 的密码。
passwd: 操作成功

    -n # 指定最短使用期限

    -x # 最大使用期限

    -w # 提前多少天开始警告

    -i # 非活动期限

    –stdin 从标准输入接收用户密码  

[root@localhost ~]# echo "123456789" | passwd --stdin user5
更改用户 user5 的密码 。
passwd:所有的身份验证令牌已经成功更新。

三、课后链接及作业

见作业篇

原创文章,作者:SilencePavilion,如若转载,请注明出处:http://www.178linux.com/27869

(0)
SilencePavilionSilencePavilion
上一篇 2016-08-04
下一篇 2016-08-04

相关推荐

  • SQL优化大全

    1. 优化SQL步骤 1. 通过 show status和应用特点了解各种 SQL的执行频率        通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 g…

    Linux干货 2015-04-13
  • awk入门应用

    awk概述使用语法常用命令选项相关输出命令print item1,item2,…printf FORMAT,item1,item2,….相关格式符相关修饰符相关内建变量相关内置函数相关操作符相关模式相关控制语句及示例if(condition) statementsif(condition){statements} else {statements}while…

    Linux干货 2016-12-04
  • 网络管理(三)之路由设置、网络组

    网络管理(三)之路由设置、网络组 一、网卡名称: 1、网络接口的识别命名udev配置文件:#vim /etc/udev/rules.d/70-persistent-net.rules 2、网卡查看:#dmesg | grep -i eth 或者#ethtool -i eth0            …

    Linux干货 2016-09-08
  • 基于Cobbler实现多版本操作系统自动部署

    前言     在生产环境中,当需要批量部署几十甚至上百台服务器时,实现自动化安装操作系统尤为重要,按照传统的光盘引导安装是不可想象的;此前我们通过pxe+kickstart简单实现了自动化安装,但只能实现单一版本安装,当需要部署不同版本或不同引导模式(BIOS、EFI)时,此种方式就不够灵活。而Cobbler正是为了解…

    Linux干货 2015-08-11
  • M25 Linux 学习,FHS标准

    FHS FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数Linux版本采用这种文件组织形式,FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。 FHS定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如/etc应该要放置设置文件,/bi…

    2017-07-15
  • HTTP协议

    HTTP协议   HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP协议工作于客户端-服务端架构之上。浏览器作为HT…

    Linux干货 2017-02-15