用户和组管理

多用户操作系统和单用户操作系统

单用户操作系统只能同时一个用户在线,而多用户操作系统可以同时多人在线。Linux中多用户之间的切换alt+F1到F7,alt+f7是图形模式,其它是命令行模式。

在windows中创建用户的命令

net user zhang 123 /add

将用户添加到管理员组

net localgroup administrators zhang /add

更改用户密码

net user administrator a1!

查看用户身份

Whoami /all

用户登录身份和权限

创建用户

[root@learn ~]# useradd zhangql

查看用户id

[root@learn ~]# id zhangql

uid=502(zhangql) gid=502(zhangql) groups=502(zhangql)

创建组

[root@learn ~]# groupadd teachers

把用户加入到组

[root@learn ~]# usermod -a -G teachers zhangql

再次查看用户id会发现所属组的不同

[root@learn ~]# id zhangql

uid=502(zhangql) gid=502(zhangql) groups=502(zhangql),503(teachers)

Linux中用户和组管理

用户类别

管理员

默认名是root ; UID 是0

普通用户 UID 取值范围1-65536

系统用户UID 取值范围1-499 专门用来运行服务的账户,不需要登录系统

普通用户UID 取值范围500-1000 用来登录Linux系统

用户UID定义的文件

[root@learn ~]# cat /etc/login.defs |grep -v '^#'|grep -v '^$'

MAIL_DIR /var/spool/mail

PASS_MAX_DAYS 99999

PASS_MIN_DAYS 0

PASS_MIN_LEN 5

PASS_WARN_AGE 7

UID_MIN   500

UID_MAX 60000

GID_MIN   500

GID_MAX 60000

CREATE_HOME yes

UMASK           077

USERGROUPS_ENAB yes

ENCRYPT_METHOD SHA512

组类别

管理员组

普通组

系统组

一般组

使用组简化授权

Linux中有基本组,附加组,私有组。

优先使用基本组,用户只能属于一个基本组,也是用户的默认组

基本组不能满足授权要求时创建附加组,用户可以属于多个附加组

私有组是创建用户时如果没有指定基本组,系统会创建和用户同名的一个组

管理Linux用户

passwd文件结构

Linux用户存放的位置  /etc/passwd

[root@learn ~]# head -1 /etc/passwd

root:x:0:0:root:/root:/bin/bash

文件以":"分隔说明每段信息含义

account 用户登录名

password 用户密码

UID 用户的ID

GID 用户的基本组ID

comment 注释

home 用户主目录

shell 分配给用户的shell

查看linux有可用的shell

[root@learn ~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

shadow文件结构

Linux的密码信息和用户信息的安全信息不一样单独用一个文件存放/etc/shadow

[root@learn ~]# tail -1 /etc/shadow

zhangql:$6$0j5kYvjn$Z6rOWcSE4oZHF1KyycmkLrnFfkMfHWdyQxh1z.DteqPpfgQRBsOr4FDXbJ.eFFgsszfuEfZnccYS0TSFxIEHS.:17349:0:99999:7:::

文件以":"号分隔说明每段信息含义

用户名

加密后的密码

从1970年到最近一次更改密码时间之间过了多少天

密码最少使用几天

密码最长使用多少天

密码到期前几天提醒用户更改密码

密码过期时间

用户过期时间

chage

修改账户相关时间

-d 设置最近一次更改密码时间

-E 设置账户过期时间

-I(大写i) 设置密码账户过期时间

-l --list 列出用户账户密码信息

-m 设置用户最短密码使用时间

-M 设置用户最大密码使用时间

-W 设置密码更改警告时间

[root@learn ~]# chage -I 5  zhangql

[root@learn ~]# chage -M 5  zhangql

[root@learn ~]# chage -m 2  zhangql

[root@learn ~]# chage -d "2017-7-3"  zhangql

[root@learn ~]# chage -l zhangql

Last password change : Jul 03, 2017

Password expires : Jul 08, 2017

Password inactive : Jul 13, 2017

Account expires : never

Minimum number of days between password change : 2

Maximum number of days between password change : 5

Number of days of warning before password expires : 7

useradd

创建用户

adduser-->useradd,adduser链接到useradd本身

-u 指定用户的UID 大于500并且不能和现有用户UID重

-g 指定用户的基本组

-G 可以为用户指定多个附加组,指定多个附加组用逗号隔开

-c 为用户添加注释信息

-d 为用户指定家目录

-s 为用户指定shell的路径,最好是/etc/shells文件内的shell因为它是安全的 shell

-m 如果用户的家目录不存在,强制创建,默认执行

-M 不给用户创建家目录

-r 创建系统账户 ID号1-499之间

[root@learn ~]# useradd -u 5000 -g students -G moniter,partmember -c "The 2017 new student" -d /home/zhang -s /bin/bash

如果用户shell是/bin/nologin表示不能登录

定义创建新用户的行为文件

[root@learn ~]# grep -v "^#" /etc/login.defs

新用户家目录文件来自/etc/skel/

[root@learn ~]# ls -a /etc/skel

.  ..  .bash_logout  .bash_profile  .bashrc

usermod

修改用户user modify

-u 修改用户UID

-g 修改用户所属基本组GID

-G 修改用户附加组(默认清除原有附加组),使用逗号隔开多个附加组

-a -G 将用户添加到新的附加组

-c 修改用户的注释信息

-md 移动用户家目录到新位置

-d 指定用户家目录到新位置

-s 更改用户shell

-l 更改用户登录名

-L 锁定用户(禁用)

-U 解锁用户

chsh

更改用户shell

[root@learn ~]# chsh lisi

Changing shell for lisi.

New shell [/bin/bash]: /bin/sh

Shell changed.

finger

查询用户信息以及登录信息

需要先安装finger

1、挂载光驱

[root@learn cdrom]# mount /dev/cdrom /mnt/cdrom/

mount: block device /dev/sr0 is write-protected, mounting read-only

2、查找finger

root@learn cdrom]# find -name "finger*"

./Packages/finger-0.17-40.el6.x86_64.rpm

./Packages/finger-server-0.17-40.el6.x86_64.rpm

3、rpm安装finger ,-i是install

[root@learn cdrom]# rpm -i Packages/finger-0.17-40.el6.x86_64.rpm

[root@learn cdrom]# finger lisi

Login: lisi            Name:

Directory: /home/lisi                Shell: /bin/sh

Never logged in.

No mail.

No Plan.

chfn

修改用户扩展属性

[root@learn cdrom]# chfn lisi

Changing finger information for lisi.

Name []: li

Office []: 007

Office Phone []: 00000

Home Phone []: 0000

passwd

更改用户密码

普通用户只能更改自己的密码,管理员root能够更改任何人的密码。

使用脚本更改用户密码

[root@learn cdrom]# echo "123" |passwd --stdin lisi

Changing password for user lisi.

passwd: all authentication tokens updated successfully.

锁定用户

[root@learn cdrom]# passwd -l lisi

Locking password for user lisi.

passwd: Success

解锁用户

[root@learn cdrom]# passwd -u lisi

Unlocking password for user lisi.

passwd: Success

清除用户密码

[root@learn cdrom]# passwd -d lisi

Removing password for user lisi.

passwd: Success

pwck

检查用户完整性

[root@learn cdrom]# pwck

user 'adm': directory '/var/adm' does not exist

user 'uucp': directory '/var/spool/uucp' does not exist

user 'gopher': directory '/var/gopher' does not exist

user 'ftp': directory '/var/ftp' does not exist

user 'saslauth': directory '/var/empty/saslauth' does not exist

pwck: no changes

whoami

查看当前登录的用户

[root@learn cdrom]# whoami

root

who

查看那些用户登录了linux

[root@learn cdrom]# who

root     tty1         2017-07-01 22:18

root     pts/0        2017-07-04 21:07 (win-blqck1rlher.lan)

root     pts/1        2017-07-04 21:20 (win-blqck1rlher.lan)

userdel

-r 删除用户相关目录

用户相关目录:

 /etc/passwd

 /etc/shadow

 /etc/group

 /etc/gshadow

 /home/

 /var/spool/mail/

[root@learn cdrom]# userdel -r li

userdel: /var/spool/mail/li not owned by li, not removing

userdel: /home/li not owned by li, not removing

管理linux组

groupadd

创建组

-g 指定组GID

-r 指定系统组

[root@learn ~]# groupadd -g 555 master

[root@learn ~]# groupadd -r sus

[root@learn ~]# tail -5 /etc/group

lisi:x:501:

zhangql:x:502:

teachers:x:503:zhangql

sus:x:499:

master:x:555:

groupmod

修改组

-g 修改组GID

-r 修改系统组

[root@learn ~]# groupmod -g 556 master

[root@learn ~]# groupmod -n  masters master

[root@learn ~]# tail -5 /etc/group

lisi:x:501:

zhangql:x:502:

teachers:x:503:zhangql

sus:x:499:

masters:x:556:

groupdel

删除组

[root@learn ~]# groupdel lisi

gpasswd

给组设置密码

[root@learn ~]# gpasswd lisi

Changing the password for group lisi

New Password:

Re-enter new password:

newgrp

切换基本组身份

[root@learn ~]# newgrp lisi

[root@learn ~]# id

uid=0(root) gid=501(lisi) groups=501(lisi),0(root),502(zhangql)

[root@learn ~]# exit

exit

[root@learn ~]# id

uid=0(root) gid=502(zhangql) groups=502(zhangql),0(root),501(lisi)

管理用户工作环境

shell分类

交互式shell

等待用户输入

执行提交的命令

退出输入exit

非交互式shell

不需要等待用户输入

执行shell脚本

脚本执行结束shell退出

登录shell

需要输入用户名和密码才能进入的shell 或者加参数(-login)进入

[root@learn ~]# su --login lisi

非登录shell

不需要输入用户名和密码就能登录shell

[root@learn ~]# sh

[root@learn ~]# bash

[root@learn ~]# su lisi

可通过pstree命令查看登录shell

[lisi@learn root]$ pstree

init─┬─ManagementAgent───2*[{ManagementAgen}]

├─VGAuthService

├─abrtd

├─acpid

├─atd

├─auditd───{auditd}

├─console-kit-dae───63*[{console-kit-da}]

├─crond

├─dbus-daemon

├─dhclient

├─hald─┬─hald-runner─┬─hald-addon-acpi

│      │             └─hald-addon-inpu

│      └─{hald}

├─login───bash

├─master─┬─pickup

│        └─qmgr

├─5*[mingetty]

├─rsyslogd───3*[{rsyslogd}]

├─sshd───sshd───bash───bash───bash───bash───bash───su───bash───ps+

├─udevd───udevd

└─vmtoolsd───{vmtoolsd}

图形界面的linux登录后打开命令行终端

自定义shell环境

[lisi@learn ~]$ export PS1='[\h@\u \t]#'

[learn@lisi 21:02:30]#

永久保存个人shell环境

[lisi@learn ~]$ echo "export PS1='[\h@\]u \t]# '">> .bash_profile

[learn@lisi 21:30:12]#  cat .bash_profile |grep "exp"

export PATH

export PS1='[\h@\u \t]# '

[lisi@learn ~]$ source .bash_profile

[learn@u 21:25:50]#

全局定义shell环境

[lisi@learn ~]$ cat /etc/bashrc

bash配置文件

bash的配置文件保存用户的工作环境

个人配置文件在用户家目录中

~.bash_profile       ~/.bashrc

全局配置文件

/etc/profile         /etc/profile.d/*.sh           /etc/bashrc

profile类的文件

设定环境变量

登录前运行的脚本和文件

bashrc类的文件

设定本地变量

定义命令别名

全局配置和个人配置设置冲突以个人配置为准,不冲突都生效

登录式shell配置文件应用顺序

读取顺序

/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~./bashrc  --> /etc/bashrc

非登录式shell应用那些配置文件 应用顺序

读取顺序

~/.bash_profile --> /etc/bashrc --> /etc/profile.d/*.sh

文件和文件夹权限

文件权限

r 可读 用户可以使用cat查看文件的内容

w 可写 可以编辑或删除此文件

x 可执行 executable 针对命令文件可以授权用户可执行权限

文件夹权限

r 用户可以列出该文件夹内部所有文件  ls

w 用户可以在此文件夹中创建文件和文件夹

x 用户可以使用cd进入该文件夹 通过ls -l 查看内部文件的详细信息

通过二进制演变成数字权限位

000

---

无权限

0

001

--x

可执行

1

010

-w-

可写

2

011

-wx

写和执行

3

100

r--

可读

4

101

r-x

读和执行

5

110

rw-

读和写

6

111

rwx

读写执行

7

访问文件和文件夹的三类用户

u 属主

g 属组

o 其它账户

chown

更改文件和文件夹属主和属组

同时更改文件夹的属主和属组

[root@learn ~]# chown root:lisi 123

[root@learn ~]# ll 123

-rw-r--r-- 1 root lisi 193 Jan 28 10:24 123

同时更改文件夹及文件夹内文件和文件夹的属主和属组

[root@learn ~]# chown lisi:lisi -R 11/

[root@learn ~]# ll 11

total 0

-rw-r--r-- 1 lisi lisi 0 Jul 12 19:39 ppt

更改文件夹属主

[root@learn ~]# chown lisi: 123

[root@learn ~]# ll 123

-rw-r--r-- 1 lisi lisi 193 Jan 28 10:24 123

更改文件夹属组

[root@learn ~]# chown :root 123

[root@learn ~]# ll 123

-rw-r--r-- 1 lisi root 193 Jan 28 10:24 123

参照文件夹的属性设置文件的属性

[root@learn ~]# chown --reference=11/ 11/ppt

[root@learn ~]# ll 11/

total 0

-rw-r--r-- 1 root lisi 0 Jul 12 19:39 ppt

chmod

修改文件和文件夹权限

三类用户

u 属主

g 属组

o 其他用户

a 所有人

三类权限

r   w   x

修改属主的访问权限

[root@learn ~]# chmod u=rwx 123

[root@learn ~]# ll 123

-rwxr--r-- 1 lisi root 193 Jan 28 10:24 123

[root@learn ~]# chmod u+x 123

[root@learn ~]# ll 123

-rwxr--r-- 1 lisi root 193 Jan 28 10:24 123

[root@learn ~]# chmod u-x 123

[root@learn ~]# ll 123

-rw-r--r-- 1 lisi root 193 Jan 28 10:24 123

修改属组的访问权限

[root@learn ~]# chmod g=rwx 123

[root@learn ~]# ll 123

-rw-rwxr-- 1 lisi root 193 Jan 28 10:24 123

[root@learn ~]# chmod g-x 123

[root@learn ~]# ll 123

-rw-rw-r-- 1 lisi root 193 Jan 28 10:24 123

修改其他用户的访问权限

[root@learn ~]# chmod o=rwx 123

[root@learn ~]# ll 123

-rw-rw-rwx 1 lisi root 193 Jan 28 10:24 123

[root@learn ~]# chmod o-x 123

[root@learn ~]# ll 123

-rw-rw-rw- 1 lisi root 193 Jan 28 10:24 123

同时修改属主、属组、其他账户权限

[root@learn ~]# chmod u=r,g=rw,o=x 123

[root@learn ~]# ll 123

-r--rw---x 1 lisi root 193 Jan 28 10:24 123

[root@learn ~]# chmod a=r 123

[root@learn ~]# ll 123

-r--r--r-- 1 lisi root 193 Jan 28 10:24 123

[root@learn ~]# chmod a=rwx 123

[root@learn ~]# ll 123

-rwxrwxrwx 1 lisi root 193 Jan 28 10:24 123

[root@learn ~]# chmod a-x 123

[root@learn ~]# ll 123

-rw-rw-rw- 1 lisi root 193 Jan 28 10:24 123

[root@learn ~]# chmod ug=rw,o=x 123

[root@learn ~]# ll 123

-rw-rw---x 1 lisi root 193 Jan 28 10:24 123

修改文件夹内部文件和文件夹的权限

[root@learn ~]# chmod go-x -R 123

[root@learn ~]# ll 123

-rw-rw---- 1 lisi root 193 Jan 28 10:24 123

使用八进制方式设置权限

[root@learn ~]# chmod 700 123

[root@learn ~]# ll 123

-rwx------ 1 lisi root 193 Jan 28 10:24 123

[root@learn ~]# chmod 711 123

[root@learn ~]# ll 123

-rwx--x--x 1 lisi root 193 Jan 28 10:24 123

参照现有文件或文件夹权限设置文件和文件夹权限

[root@learn ~]# chmod --reference=11/ 11/ppt

[root@learn ~]# ll 11/

total 0

-rwxr-xr-x 1 lisi lisi 0 Jul 12 19:39 ppt

umask

权限遮罩码 umask 控制用户创建文件和文件夹的默认安全设置

文件默认权限

666-umask

文件夹默认权限

777-umask

管理员root

umask=022

文件默认权限666-022=644 文件夹默认权限777-022=755

普通用户

umask=002

文件默认权限666-002=664 文件夹默认权限 777-002=775

更改umask

[root@learn ~]# umask 0007

[root@learn ~]# umask

0007

永久更改用户自身的uamsk

vim .bash_profile

在Linux中文件的默认权限不允许有执行权,如果和umask计算的结果有执行权限将其计算结果+1

例:

如果umask=023  用户文件的权限666-023=643

643转换 rw-r---wx 因不允许有执行权

所以+1等于 644 rw-r--r

在/etc/profile文件中设定系统全局umask,定义了默认文件权限

[root@learn ~]# cat /etc/profile

...

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

umask 002

else

umask 022

fi

...

文件特殊权限

上级目录权限决定文件权限

权限下发suid  4

条件:

作用于二进制文件(可执行文件),对于目录和文件无效

特征:

chmod u+s filename

rw- +suid    rwS

rwx +suid    rws

功能:

不管谁来执行命令,都以拥有者的权限执行。

sgid   2

条件:

作用于二进制文件(可执行文件)、目录,对文件无效

特征:

chmod g+s filename

rw- +suid    rwS

rwx +suid    rws

功能:

不管谁来执行命令,都以拥有组的权限执行

当上级目录设定sgid后,此目录内所有内容都将继承该目录的所属组权限

sticky   1

条件:

只能作用于目录

特征:

chmod o+t filename

o+t

功能:

任何人创建文件,只能root和创建者有删除权限

以上三种模式,大小写s或t 取决于文件是否具有x权限

文件重定向

输入输出重定向

输入为0,输出为1,错误为2

根据以上特性试验:

将正确和错误输出重定向到文件(默认是1,可以不写直接跟重定向)

ls /etc/passwd /etc/passwd1 &>/home/all.log     &表示1和2

等同

ls /etc/passwd /etc/passwd1 > /home/11.log 2>&1  2>&1表示将查询到的结果1和2都输出到11.log文件下

将正确和错误输出重定向到不同的文件

ls /etc/passwd /etc/passwd1 1>/home/1.log 2>/home/2.log

追加:>>

echo ‘aaa’ >>1.log 把aaa内容追加到1.log文件中

输入:< 和输入追加 <<    很少使用

cat < /etc/passwd    不加<也能显示

cat << /etc/passwd、

系统黑洞 /dev/null

不需要的系统日志等重定向到系统黑洞(回收站(清空状态))/dev/null

ls /etc/passwd /etc/passwd1 > /dev/null 2>&1

查看文件大小

ls –lh /dev/null

du –sh /dev/null

零发射器 /etc/zero

dd if=/dev/zero of=1.txt bs=1 count=1M

if从零发射器输入到1.txt,bs份数 1份,count数据大小1M

转载于:https://www.cnblogs.com/pathping/p/7252497.html

Linux系统管理之用户和组相关推荐

  1. linux下创建用户及组

    linux下创建用户及组: 1.创建组 groupadd  组名 2.创建用户,并将用户添加到组 useradd  用户名  -g  组名 3.更改用户的密码 password  用户名 4.修改目录 ...

  2. linux基础入门---用户和组管理命令

    计算机中用户的作用:主要实现资源分享,在分享资源同时涉及到资源安全,又新增用户密码认证,使其资源由特定权限的用户或用户组才可访问. linux系统中用户和组分类: 用户分为:管理员用户(root).普 ...

  3. Linux——万字总结用户与组相关知识!建议收藏!

    目录 用户和组 用户账户 用户的家目录 组账号 创建用户背后发生了什么? ​ 小练习:# 截取第七字段并查找出几种 useradd命令 userdel -r 用户名 -->家目录和本地邮件目录全 ...

  4. linux 查看当前用户和组的信息,Linux查看所有用户和组信息

    主要通过以下两个命令: cat /etc/passwd cat /etc/group 步骤一:cat /etc/passwd查看所有的用户信息,详情如下图: 步骤2:cat /etc/passwd|g ...

  5. Linux中的用户和组

    Linux操作系统是多用户操作系统,它允许多个用户同时登录到系统中,使用系统资源,为了使所有用户的工作都能顺利进行,保护每个用户的文件和进程,也为了系统自身的安全和稳定,必须建立起一种机制,使每个用户 ...

  6. linux基础:用户与组,权限管理

    linux中用户与权限管理 与Window的单用户系统不同,Linux操作系统在设计之初就遵循着多用户.多任务的理念.而在这种情况下,安全问题非常重要,不同用户,不同的用户组之间的隐私保护,安全管理就 ...

  7. Linux centos修改用户所属组的方法

    Linux修改用户所属组1.设置某个用户所在组1 usermod -g 用户组 用户名 注:-g|--gid,修改用户的gid,该组一定存在2.把用户添加进入某个组(s)1 usermod -a -G ...

  8. Linux下的用户和组

    2019独角兽企业重金招聘Python工程师标准>>> 用户和组 GNU/Linux 通过用户和用户组实现访问控制 -- 包括对文件访问.设备使用的控制.Linux 默认的访问控制机 ...

  9. Linux下的用户、组和权限的详细解释

            前言:在linux中一切都是文件(文件夹和硬件设备是特殊的文件),如果有可能尽量使用文本文件.文本文件是人和机器能理解的文件,也成为人和机器进行交流的最好途径.由于所有的配置文件都是文 ...

最新文章

  1. Multisim14.0 安装教程
  2. 快手-中科大最新研究:利用对话式推荐解决用户冷启动问题
  3. zencart 后台 tool-define page editor define define_main_page.php
  4. 懒汉式,同步代码块线程不安全
  5. 具有PreAuthorize的Spring方法安全性
  6. 发送邮件时,如何附带上中文等价名信息
  7. HTML5,CSS3,JS绘制饼图
  8. 从0到1上线一个微信小程序
  9. org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.itheima.
  10. 360携手HarmonyOS打造独特的“天气大师”
  11. 两台局域网内的阿里云服务器传文件
  12. idea文件颜色代表的含义
  13. 如何优雅的使用LiveData实现一套EventBus(事件总线)
  14. 过压电路保护元器件详解,一文就看明白了
  15. 新浪短链接API接口示例
  16. LLVM和Clang背后的故事
  17. 武汉php工程师,Laravel 招聘:[武汉][10-20k][光谷][CmsTop新项目]高级PHP工程师 | Laravel China 社区...
  18. 【天华学术】文艺美学论文:《哈姆雷特》悲剧蕴含的审美价值(节选)
  19. 此去经年,我还年轻吗?
  20. VS2019通过ADO连接access数据库(详细)

热门文章

  1. Android音频开发(七)音频编解码之MediaCodec编解码AAC下
  2. 业务逻辑全写在sql_12306的业务逻辑很复杂么?一条SQL语句搞不定?
  3. springboot上传文件同时传参数_Spring Boot 系列:使用 Spring Boot 上传文件
  4. mysql insert表名前不写字段_云计算教程分享Mysql技术知识点
  5. 【java】简述CGLIB常用API
  6. 【Elasticsearch】es Timelion是Kibana中时间序列的可视化工具
  7. 【Flink】Flink1.12.0 FlinkSQL消费Kafka 使用 temporal join 关联维表Hive 最新分区数据 join 不上
  8. 【Flink】Flink 时间之 timerService().registerEventTimeTimer 主要做了什么
  9. Spring :基于@Transactional注解的声明式事物
  10. Flink 1.9 写入HDFS报错 UnsupportedFileSystemSchemeException:hdfs