接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/27622

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

相关推荐

  • 小巧精悍——常见文本处理工具用法及技巧总结

    小巧精悍——常见文本处理工具用法及技巧总结 Linux最重要的哲学思想就是:一切皆文件。可见文件及文件操作在Linux当中是多么的重要。在Linux系统中我们也会经常用到各种文本文件处理的操作,熟练使用这些小巧精悍的文本处理工具,在关键时刻往往展现非凡的神奇功效。常见文本处理小工具:cat、hexdump、nl、less、head、tail、cut、tr、r…

    Linux干货 2016-11-05
  • 第九周

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash for i in `cut -d':' -f7 /etc/passwd`;do &n…

    Linux干货 2016-09-26
  • linux 文件管理命令

    cp 复制文件或者路径 单源复制: cp [OPTION]…[-T] SOUTCE DEST 如果DEST不存在:则事先创建此文件,并复制源文件的数据流到DEST中 如果DEST存在:   如果DEST是非目录文件:则覆盖目标文件; 如果DEST是目录,就在这个目录中创建一个同名的文件,把源数据复制到这个文件中。 多源复制: cp [O…

    Linux干货 2017-08-28
  • Linux发行版之间的联系与区别及其哲学思想。

    一、Linux发行版之间的联系与区别。 随着Linux不断发展,Linux所支持的文件系统类型也在迅速扩充。很多的数据中心服务器上都运行着Linux,可以节省大量的许可证费用及维护费用。但伴随着Linux新版本的发行,其中每一个不同版本的Linux所支持的文件系统类型都有所不同。Linux的发行版有数百种之多。 1、Debian:是指一个致力于创建自由操作系…

    Linux干货 2016-10-30
  • Linux cluster集群全讲解

                     Linux cluster集群 Linux cluster(集群): cluster:计算机组合,为解决某个特定问题组合起来形成的单个系统;   Linux Cluster类型:    LB:Load Balancing,负载均衡;    HA:High Availiablity,高可用;    A=MTBF(平均无故障时长…

    2016-11-18
  • 系统启动流程

    CentOS 5和6的启动流程服务管理Grub管理自制Linux启动排错编译安装内核 系统启动流程:  POST –> 读取BootSequence (BIOS),决定引导次序 –>读取引导设备的Bootloader(MBR grubstage1–>stage1.5/boot…

    Linux干货 2016-09-13