Linux 用户管理 与 文件权限

用户组操作

1.groupadd命令

groupadd [-g -o] gid  group
各个选项具体含义如下:
-g:指定新建用户组的GID号,该GID号必须唯一,不能和其它用户组的GID号重复。
-o:一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。 //新增group sheyou gid=1020
groupadd -g 1020 sheyou
//查看组信息
more /etc/group|grep linuxfans
//创建了一个用户user1,同时指定user1的主用户组为group1,附加用户组为group2和group3
useradd -g group1 -G group2,group3 user1
//用户查看
more /etc/group|grep user1
//设置密码
passwd user1

2.newgrp命令

//用户切换组
newgrp group2

3.groupdel命令

当需要从系统上删除用户组时,可用groupdel指令来完成这项工作。如果该用户组中仍包括某些用户,则必须先删除这些用户后,然后才能删除用户组。
例如:删除linuxfans这个用户组
groupdel linuxfans

用户操作

1.useradd建立用户的过程

useradd不加任何参数创建用户时,系统首先读取添加用户配置文件/etc/login.defs和/etc/default/useradd,根据这两个配置文件中定
义的规则添加用户,然后会向/etc/passwd和/etc/group文件添加用户和用户组记录,同时/etc/passwd和/etc/group对应的加密文件也会
自动生成记录,接着系统会自动在/etc/default/useradd文件设定的目录下建立用户主目录,最后复制/etc/skel目录中的所有文件到新用户
的主目录中,这样一个新的用户就建立完成了。

2.useradd的使用语法

useradd语法的一般格式为:

useradd  [-u uid [-o]] [-g group] [-G group,...]
[-d home] [-s shell] [-c comment]
[-f inactive] [-e expire ] name
各个选项具体含义如下:
 -u uid:即用户标识号,此标识号必须唯一。
 -g group:指定新建用户登录时所属的默认组,或者叫主组。此群组必须已经存在。
 -G group:指定新建用户的附加组,此群组必须已经存在。附加组是相对与主组而言的,当一个用户同时是多个组中的成员时,
登录时的默认组成为主组,而其它组称为附加组。
 -d home:指定新建用户的默认主目录,如果不指定,系统会在/etc/default/useradd文件指定的目录下创建用户主目录。
 -s shell:指定新建用户使用的默认shell,如果不指定,系统以/etc/default/useradd文件中定义的shell作为新建用户的默认shell。
 -c comment:对新建用户的说明信息。
 -f inactive:指定帐号过期多长时间后永久停用。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1
 -e expire:指定用户的帐号过期时间,日期的指定格式为MM/DD/YY。
 name:指定需要创建的用户名。

3.usermod的使用语法

usermod用来修改用户的账户属性信息,使用语法如下:
usermod [-u uid [-o]] [-g group] [-G group,...]
[-d 主目录 [-m]] [-s shell] [-c 注释] [-l 新名称]
[-f 失效日期] [-e 过期日期][-L|-U] Name
各个选项具体含义如下:
 -u uid:指定用户新的UID值,此值必须为唯一的ID值,除非用-o选项。
 -g group:修改用户所属的组名为新的用户组名,此用户组名必须已经存在。
 -G group:修改用户所属的附加组。
 -d 主目录:修改用户登录时的主目录。
 -s shell:修改用户登录系统后默认使用的shell
 -c 注释:修改用户的注释信息。
 -l 新名称:修改用户帐号为新的名称。
 -f 失效日:帐号过期多少天后永久禁用。
 -e 过期日:增加或修改用户账户的过期时间。
 -L:锁定用户密码,使密码无效。
 -U:解除密码锁定。
 Name:要修改属性的系统用户。

4.userdel的使用语法

Userdel用来删除一个用户,若指定“-r”参数不但删除用户,同时删除用户的主目录以及目录下的所有文件。语法格式为:
userdel [-r][用户帐号]

5.应用举例

1)添加一个用户mylinux,指定所属的主用户组为fanslinux,附加用户组为linuxfans,同时指定用户的默认主目录为/opt/mylinux

[root@localhost ~]# useradd -g fanslinux -G linuxfans -d /opt/mylinux mylinux
[root@localhost ~]# more /etc/passwd|grep mylinux
mylinux:x:523:1030::/opt/mylinux:/bin/bash
[root@localhost ~]# more /etc/group|grep mylinux
linuxfans:x:1020:mylinux

2)添加一个用户test_user,指定UID为686,默认的shell为/bin/csh,让其归属为用户组linuxfans和fanslinux,同时添加对此用户的描述

[root@localhost ~]# useradd  -u 686 -s /bin/csh  -G linuxfans,fanslinux  -c "This is test user" test_user
[root@localhost ~]# more /etc/passwd|grep test_user
test_user:x:686:686:This is test user:/home/test_user:/bin/csh
[root@localhost ~]# more /etc/group|grep test_user
fanslinux:x:1030:test_user
linuxfans:x:1020:mylinux,test_user
test_user:x:686:

3)修改用户test_user的主用户组为新建的组test_group1,同时修改test_user的附加组为linuxfans和root,最后修改test_user的默认登录shell为/bin/bash

[root@localhost ~]# groupadd test_group1  #添加一个新的用户组
[root@localhost ~]# more /etc/group|grep test_group1 #显示新增用户组的信息
test_group1:x:1031: [root@localhost ~]# usermod -g test_group1 -G linuxfans,root -s /bin/bash test_user
[root@localhost ~]# more /etc/passwd|grep test_user #从输出可知,用户的属性已经更改
test_user:x:686:1031:This is test user:/home/test_user:/bin/bash
[root@localhost ~]# more /etc/group|grep test_user #从输出可知,用户组的属性也同步更改
root:x:0:root,test_user
linuxfans:x:1020:mylinux,test_user
test_user:x:686:

4)如何锁定、解除用户密码

1.对test_user和mylinux用户设置密码

[root@localhost ~]# passwd  test_user
Changing password for user test_user.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd mylinux
Changing password for user mylinux.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

2.通过su命令切换到mylinux用户下,然后在mylinux下再次切换到test_user用户下,这里的切换用户是为了说明一个问题:

从超级用户root切换到普通用户下,是不需要输入普通用户密码的,系统也不会去验证密码。

但普通用户之间切换是需要密码验证的。

[root@localhost ~]# su – mylinux  #通过su命令切换到mylinux用户下
[mylinux@localhost ~]$ whoami #用whoami命令查看当前用户
mylinux
[mylinux@localhost ~]$ su - test_user #这里是从mylinux用户下切换到test_user用户下,需要输入密码
Password:
[mylinux@localhost ~]$ whoami #成功切换到test_user用户下
test_user

3.在root用户下执行usermod锁定test_user的密码,测试test_user是否还能登录,从下面可以看出,密码锁定后,出现登录失败。

[root@localhost ~]# usermod -L test_user  #锁定test_user用户的密码
[root@localhost ~]# su - mylinux
[mylinux@localhost ~]$ whoami
mylinux
[mylinux@localhost ~]$ su - test_user #这里输入的密码是正确的,但是提示密码错误,因为密码被锁定了
Password:
su: incorrect password
[mylinux@localhost ~]$ whoami
mylinux

4.test_user解除密码锁定,登录正常。

[root@localhost ~]# usermod -U test_user  #解除密码锁定
[root@localhost ~]# su – mylinux
[mylinux@localhost ~]$ whoami
mylinux
[mylinux@localhost ~]$ su - test_user
Password:
[test_user@localhost ~]$ whoami #密码锁定解除后,test_user用户可以登录系统
test_user

文件与权限的设定

所谓的文件权限,是指对文件的访问权限,包括对文件的读、写、删除、执行等,在linux下,每个用户都具有不同的权限,普通用户只能在自己的主目录下进行写操作,而在主目录之外,普通用户只能进行查找、读取操作,如何处理好文件权限和用户之间的关系,是本节讲述的重点。

一 查看文件的权限属性

使用ls命令就可以查看文件的以及目录的权限信息,不带任何参数的ls命令只显示文件名称,通过“ls –al”可以显示文件或者目录的权限信息,看下面的输出:

[root@localhost oracle]# ls -al
total 92
drwxr-xr-x 3 oracle oinstall 4096 Oct 30 2006 admin
drwxr-xr-x 2 oracle oinstall 4096 Oct 23 18:22 bin
-rwxr-xr-x 1 root root 3939 Mar 20 2008 .createtablespace.pl
drwxr-xr-x 3 oracle oinstall 4096 Oct 30 2006 flash_recovery_area
drwxr-xr-x 2 oracle oinstall 4096 Jun 25 15:18 install
drwx------ 2 oracle oinstall 16384 Jun 25 01:10 lost+found
drwxr-xr-- 3 oracle oinstall 4096 Oct 30 2008 oradata
drwxr-xr-x 6 oracle oinstall 4096 Oct 30 2006 oraInventory
drwxr-xr-x 3 oracle dba 4096 Oct 28 2006 product

为了能更详细的介绍上面输出中每个属性的含义,下图列出了oradata文档每列代表的含义:

下面通过具体的实例讲述每列代表的含义。

1.第一列显示文档类型与执行权限,有十个字符组成,分为4个部分,下面将文档oradata权限分解,如下图所示

接着对每个部分解释如下:

 文档类型部分:

当为“d”时,表示目录;当为“l”时表示软链接;当为“-”时表示文件;当为“c”时表示串行端口字符设备文件;当为“b”时表示可供存储的块设备文件。由此可知,oradata是一个目录。

在接下来的三个部分中,三个字符为一组,每个字符的含义为:“r”表示只读,即read;“w”表示可写,即write;“x”表示可执行,即execute;“-”表示无此权限,即为空。

 User部分:

第二部分是对文档所有者(user)权限的设定,“rwx”表示用户对oradata目录有读、写和执行的所有权限。

 Group部分:

第三部分是对文档所属用户组(group)权限的设定,“r-x”表示用户组对oradata目录有读和执行的权限,但是没有写的权限。

 Others部分:

第四部分是对文档拥有者之外的其它用户权限的设定,“r--”表示其它用户或用户组对oradata目录只有读的权限。

文档的操作权限是可以指定和更改的,通过chmod命令即可更改文件或者目录的权限,这个将在下节讲述。

2.第二列显示的是文档的连结数,这个连结数就是硬链接的概念,即多少个文件指向同一个索引节点,举例如下:

[root@localhost ~]#ls -al
-rw-r--r-- 1 root root 60151 Oct 25 01:01 install.log
[root@localhost ~]#ln install.log install.log1
[root@localhost ~]#ls –al install.log
-rw-r--r-- 2 root root 60151 Oct 25 01:01 install.log
[root@localhost ~]#ln install.log install.log2
[root@localhost ~]#ls –al install.log
-rw-r--r-- 3 root root 60151 Oct 25 01:01 install.log

从上面可以看出,install.log文件原始的连结数是1,然后做了两个硬链接操作,install.log文件的连接数变为3,这就是连接数的含义。

3.第三列显示了文档所属的用户和用户组,也就是文档是属于哪个用户以及哪个用户组所有,例如上面的oradata目录,所属的用户为oracle,所属的组为oinstall组。文件所属的用户和组是可以更改的,通过chown命令就可以修改文档的用户属性。

4.第四列显示的是文档的大小,默认显示的是以bytes为单位,但是也可以通过命令的参数修改显示的单位,例如可以通过“ls -sh”组合人性化的显示文档的大小。对于目录,通常只显示文件系统默认block的大小。

5.第五列显示文档最后一次的修改日期,通常以月、日、时、分的方式显示,如果文档修改时间距离现在已经很远了,会使用月、日、年的方式显示。

6.第六列显示的是文档名称,linux下以“.”开头的文件是隐藏文件,同理以“.”开头的目录是隐藏目录,隐藏文档只有通过ls命令的“-a”选项才能显示。

例如上面的.createtablespace.pl文件就是一个隐藏文件。

二 利用chown改变属主和属组

chown就是change owner的意思,主要作用就是改变文件或者目录的所有者,而所有者包含用户和用户组,其实chown就是对文件所属的用户和用户组进行的一系列设置。

chown使用的一般语法为:
[root@localhost ~]#chown [-R] 用户名称 文件或目录
[root@localhost ~]#chown [-R] 用户名称:用户组组名称 文件或目录

参数说明:

-R : 进行递归式的权限更改,也就是将目录下的所有文件、子目录都更新成为指定的用户组权限。常常用于变更某一目录的情况。
注意,在执行操作前,确保指定的用户以及用户组在系统中是存在的。

例子1:修改隐藏文件“.createtablespace.pl”的所属用户为oracle,所属的用户组为oinstall,操作如下:

[root@localhost ~]#chown oracle:oinstall .createtablespace.pl
[root@localhost ~]#ls -al .createtablespace.pl
-rwxr-xr-x 1 oracle oinstall 3939 Mar 20 2008 createtablespace.pl
注意,这里要确保oracle用户和oinstall组已经存在。

例子2:修改oradata目录以及目录下的所有文件的所属用户为root,用户组为dba组,

[root@localhost ~]#chown -R root:dba oradata
drwxr-xr-- 3 root dba 4096 Oct 30 2006 oradata
三 利用chmod改变访问权限

chmod用于改变文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的字符设定法;另一种是包含数字的数字设定法。

  1. 字符设定法

    使用语法为:

    chmod [who] [+ | - | =] [mode] 文件名

命令中各选项的含义如下:

 who表示操作对象,可以是下面字母中的任何一个或者它们的组合。
 u 表示“用户(user)”,即文件或目录的所有者。
 g 表示“用户组(group)”,即文件或目录所属的用户组。
 o 表示“其他(others)用户”。
 a 表示“所有(all)用户”。它是系统默认值。
 操作符号含义如下:
 “+”表示添加某个权限。
 “-”表示取消某个权限。
 “=”表示赋予给定的权限,同时取消文档以前的所有权限。
 mode表示可以执行的权限,可以是“r“(只读)、“w”(可写)和“x”(可执行),以及它们的组合。
 文件名可以是以空格分开的文件列表,支持通配符。

2.举例

修改install.log文件,使其所有者具有所有权限,用户组和其它用户具有只读权限:

[root@localhost ~]# ls -al install.log
-rw------ 1 root root 60151 Oct 17 16:11 install.log
[root@localhost ~]# chmod u=rwx,g+r,o+r install.log
[root@localhost ~]# ls -al install.log
-rwxr--r-- 1 root root 60151 Oct 17 16:11 install.log
修改/etc/fstab文件的权限,使其所有者具有读写权限,用户组和其它用户没有任何权限:
[root@localhost ~]# ll /etc/fstab
-rwxr--r-- 1 root root 1150 Oct 23 09:30 /etc/fstab
[root@localhost ~]# chmod u-x,g-r,o-r /etc/fstab
[root@localhost ~]# ll /etc/fstab
-rw------- 1 root root 1150 Oct 23 09:30 /etc/fstab

3.数字设定法

首先了解一下用数字表示属性的含义,0表示没有任何权限,1表示有可执行权限,与上面字符表示法中的“x”有相同的含义。2表示有可写权限,与“w”对应,4表示有可读权限,对应与“r“。

如果想让文件的属主拥有读和写的权限,可以通过4(可读)+2(可写)=6(可读可写)的方式来实现,那么用数字6就表示拥有读写权限。

使用语法:

chmod [属主权限的数字组合] [用户组权限的数字组合] [其它用户权限的数字组合] 文件名

下图展示了数字设定法的实现原理:

上图数字设定法含义剖析

从图中可以清晰的看出,“755”组合的代表含义,第一个“7”显示了文件所有者的权限,是通过4(r)+2(w)+1(x)=7(rwx)而得到的。第二个“5”显示了文件所属组的权限,是通过4(r)+0(-)+1(x)=5(rx)而得到的,同理最后一个“5”也有类似的含义。

举例:

某个文件mysqltuner.pl的默认权限为600,即“-rw-------”,表示只有此文件的所有者(User)拥有读写权限,其它用户(Others)和组(Group)没有对此文件访问的任何权限。

首先修改此文件的权限为644,即“-rw-r--r--”,表示此文件的所有者(User)拥有读写权限,而其它用户(Others)和组(Group)仅仅拥有读的权限,操作如下:

[linux1@localhost ~]$ ls -al mysqltuner.pl
-rw------- 1 linux1 linux1 38063 Oct 26 07:49 mysqltuner.pl
[linux1@localhost ~]$ chmod 644 mysqltuner.pl
[linux1@localhost ~]$ ls -al mysqltuner.pl
-rw-r--r-- 1 linux1 linux1 38063 Oct 26 07:49 mysqltuner.pl

然后接着修改mysqltuner.pl文件的权限为755,即“-rwxr-xr-x”,表示此文件的所有者(User)拥有读写执行权限,而其它用户(Others)和组(Group)拥有对此文件的读和执行权限。

[linux1@localhost ~]$ chmod 755  mysqltuner.pl
[linux1@localhost ~]$ ls -al mysqltuner.pl
-rwxr-xr-x 1 linux1 linux1 38063 Oct 26 07:49 mysqltuner.pl

参照博客 浅谈Centos用户权限管理

Linux 用户管理 与 文件权限的更多相关文章

  1. linux用户管理和文件权限

    linux用户管理和文件权限 新建用户:useradd ftpuser      useradd -g gxx userxx修改密码:passwd ftpuser新增用户组:# groupadd gr ...

  2. Linux - 用户管理与文件权限

    目录 Linux - 用户管理与文件权限 创建普通用户 切换用户 userdel删除用户 sudo 命令 文件与目录权限 Linux权限的解读 目录权限 查看用户权限的命令 文件权限 修改权限的命令 ...

  3. 网卡配置文件详解 用户管理与文件权限篇 文件与目录权限 软连接 tar解压命令 killall命令 linux防火墙 dns解析设置 计划任务crond服务 软件包安装 阿里云 yum源 安装

    Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. ...

  4. Linux常用命令--用户管理,文件权限,打包命令等

    幕布链接 Linux常用命令--用户管理,文件权限,打包命令等

  5. Linux用户体系和文件权限总结

    一.           Linux系统用户和用户组相关文件 1.  /etc/passwd文件 这个passwd文件是Linux用户信息文件.文件格式说明如下: root:x:0:0:root:/r ...

  6. linux用户身份和文件权限

    1.用户身份与能力 root管理员是linux 的超级用户,他拥有系统的所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭服务进程,开启/禁用硬件设备…… "Linux系统中的管理 ...

  7. 笔记:Linux用户管理(补充)、权限管理、内存管理、网络管理、渗透常用命令

    一.用户管理(补充) 添加用户:useradd [选项] 用户名 useradd -u 5000 -g demogroup -G root -d /home/demo -s /bin/bash dem ...

  8. Linux用户身份与文件权限学习笔记

    用户身份 管理员UID为0:系统的管理员用户 系统用户UID为1~999:服务程序会有独立的系统用户负责运行:防止被黑客入侵进行提权,并有效控制被破坏的范围 普通用户UID从1000开始:是由管理员创 ...

  9. linux用户身份与文件权限

    用户 useradd [ 参数 ] 用户名 添加用户 sudo useradd -d /home/test -u 1001 -s /bin/bash name usermod [选项] 用户名 更改用 ...

随机推荐

  1. CSS性能优化的8个技巧

    本文作者:高峰,360奇舞团前端工程师,W3C性能工作组成员,同时参与WOT工作组的学习. 我们都知道对于网站来说,性能至关重要,CSS作为页面渲染和内容展现的重要环节,影响着用户对整个网站的第一体验 ...

  2. FFmpeg常用命令学习笔记(四)处理原始数据命令

    处理原始数据命令  通过音视频设备采集的.没有经过任何加工的数据叫原始数据,而像我们平时播放的比如mp4文件是压缩后的数据.视频原始数据是YUV格式,音频原始数据是PCM格式.FFmpeg可以从封装格 ...

  3. P5074 Eat the Trees

    思路 同样是插头DP,但是这题因为可以形成多个回路,所以左右括号是没有区别的,只需要01就可以表示了 注意if的嵌套关系 注意全零矩阵也要输出1 代码 #include <cstdio> ...

  4. 基于Ajax技术的前后端Json数据交互方式实现

    前言 使用浏览器访问网站是日常生活中必不可少的一件事情,当我们在浏览器地址栏中输入网址后会看到网站的内容,那么这个过程中发生了什么?下面简单介绍下浏览器访问网站过程. 第一步:浏览器向DNS服务器发起 ...

  5. vue 后退不刷新,前进刷新 keep-alive

    最近在开发中遇到了这样的一个问题: A.B.C三个页面,有如下这样的场景: (1)从页面A离开进入B或C的时候,缓存A页面的数据,并且返回到A后,能保持A页面的跳转前职位 (2)离开B进入C的时候,缓 ...

  6. bzoj4009: [HNOI2015]接水果(整体二分)

    题目描述 风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果.由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更加难的版本. 首先有 ...

  7. A Hands-on Look at Using Ray Tracing in Games with UE 4.22 GDC 2019

    A Hands-on Look at Using Ray Tracing in Games with UE 4.22 GDC 2019 talker: Sjoerd De Jong (SR.ENGIN ...

  8. 在Google Maps 上点击标签后显示说明

    JS如下: (function() {     window.onload = function() {           // Creating an object literal contain ...

  9. rsync 同步操作

    同步:增量拷贝,只传输变化过的数据 rsync   [ 选项]  源目录/目标目录 -a :归档模式  相当于 -rlptgoD -v:显示详细操作信息 -z:传输过程中启用压缩/解压 --delet ...

  10. IDEA配置和插件

    1.相关配置 设置字体和大小 2.插件 maven helper 解决maven包冲突的问题 打开pom文件,并可以切换tab,简单使用,如下图 RestfulToolkit RestfulToolk ...