七、增删群组相关的命令

相同的我们要先介绍两个重要的设定档:/etc/group和/etc/gshadow,前面那个事实上和/etc/passwd一样。而后者就是群组的password表了。先看看长啥样:

root:x:0:

adm:x:4:m,syslog

m:x:1000:

这是截取的/etc/group的一部分,每行被冒号分成四段,第一段是群组名。第二段是password; 第三段是gid;第四段就是该组以下的成员了。

我们看到root和m群组第四段是空的,而adm群组的第四段有两个成员。为什么会有这样的差别呢?原来每一个用户增加的群组分为主要群组和次要群组,主要群组是指用户账户刚建立的时候绑定的那个群组,仅仅要看一下/etc/passwd里面的第四段就能够知道该用户的主要群组是哪个,来看用户m的信息 m:x:1000:1000:m,,,:/home/m:/bin/bash  显然用户m的主要群组是m。那么每一个账户的名字是不会出如今/etc/group中主要群组的第四段的,由于在某种程度上这是不言而喻或默认的;若某个用户出如今第四段了。那意味着该群组不是其主要群组。

另一个概念叫有效群组,尽管一个用户能够增加多个群组并拥有对应权限,但这是针对已经存在的档案或文件夹而言。若果某用户要新建一个文件或文件夹,那它属于该用户的哪个群组呢?答案是有效群组,即此时该用户所在的那个组。

我们知道某一时刻,一个用户仅仅能在一个组内活动,即使他拥有其它群组的权限。打个例如,一个领导管理三个部门即拥有三个群组的权限,可是每一个时刻他仅仅能坐在某一个特定部门的办公室,却不能分身同一时候坐在三个办公室,即使他拥有另外两个办公室的进入权。

用groups命令能够查看当前用户所属的全部群组,当中第一个就是该用户的有效群组。

用newgrp命令能够切换有效群组。类似领导要去还有一个办公室。

然后又是默认情况,即某用户一登陆linux时。有效群组是哪个呢?类似于每天领导第一个去的办公室是哪个?答案是上面的主要群组,在这里它被称为初始群组。但不管哪个名字,说的都是/etc/passwd的第四段那个群组。

root:*::

daemon:*::

m:!::

这是截取的/etc/gshadow的一部分。每行也是被冒号分成四段,各自是群组名、password、群组管理员、成员。

password段若是!或*,则表示改组无法登入,即无法用newgrp切换。

添加群组命令

groupadd -g/r groupname   -g后面跟gid,加上-r 表示建立的是系统群组,即/etc/gshadow的第二栏会变成星号或叹号。

改动群组命令 :groupmod  类似与usermod。即——groupmod [-g gid] [-n group_name]

删除群组命令:groupdel  groupname 。可是这个命令有些要注意的地方,由于某些情况下会失败,原因是还实用户的初始群组是该群组。所以要先解除这样的绑定,即改动该用户在/etc/passwd的gid或直接删除该用户。

八、其它命令

1)除了上面的groups能够查看群组的信息外,另一个id命令。能够查看很多其它信息,直接在终端输入id就好,不必加參数。

2)passwd命令        passwd [-lunxwS] username

-l :将 username 这个账号的password锁住 (lock),在 /etc/shadow 内的password栏修订~

-u :将 -l 的 lock 解开!

-n :后面接天数 (数字) ,最短天数;亦即是 /etc/shadow 内的第四栏;

-x :后面接天数 (数字) ,最长天数;亦即是 /etc/shadow 内的第五栏;

-w :后面接天数 (数字) ,警告天数;亦即是 /etc/shadow 内的第六栏;

-S :显示眼下这个 username 的相关信息。

Ubuntu下的用户和权限(三)的更多相关文章

  1. Ubuntu下的用户和权限(二)

    五.chown.chgrp命令 从名字就能够猜測他们是干嘛的,可是这两个命令须要root权限. chown命令的格式为:chown user:group file  中间的user : group三项 ...

  2. ubuntu下root用户默认密码及修改方法

    [ubuntu下root用户默认密码及修改方法] 很多朋友用ubuntu,一般都是装完ubuntu系统,马上就修改root密码了,那么root用户的默认密码是多少,当忘记root用户密码时如何找回呢, ...

  3. ubuntu下新建用户

    ubuntu下新建用户和RedHat系列的linux有点不一样 新建用户的命令是useradd,修改密码是passwd,如下: sudo useradd zhuhui sudo passwd 1234 ...

  4. ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端

    本文转自: 个人建议 Ubuntu下修改目录权限命令如下:chmod 600 name (只有所有者有读和写的权限)chmod 644 name (所有者有读和写的权限,组用户只有读的权限)chmod ...

  5. 阿里云Ubuntu下安装、配置权限和导入本地mongodb

    ---恢复内容开始--- 第一部分:首先先在Ubuntu下安装好mongodb,步骤如下: 首先我们需要借助远程管理工具链接到阿里云上的ubuntu系统,接着进行如下操作 一.导出软件源的公钥 sud ...

  6. Ubuntu 下新建用户后无法sudo

    在ubuntu 下新建一个用户,然后发现无法使用sudo命令. sudo adduser test_username sudo passwd test_username # 这里就添加了一个用户,然后 ...

  7. kali下添加用户和权限分配

    1.添加用户 useradd -m test #-m的意思是创建用户的主目录 2.为用户test设置密码. passwd test 3.为添加的用户赋予权限(-a 添加 :-G 群组) 如果没有这一步 ...

  8. Ubuntu下搭建多用户多权限ftp

    #1.切换root用户模式 (已在root模式下的请忽略) sudo -i #然后提示你输入当前用户密码,输入密码后回车后如果密码正确控制台就变成root@***:/# 了. #2.更新软件源 apt ...

  9. MVC开发模式下的用户角色权限控制

    前提: MVC开发模式 大概思想: 1.在MVC开发模式下,每个功能都对应着不同的控制器或操作方法名(如修改密码功能可能对应着User/changepd),把每个功能对应的控制器名和操作方法名存到数据 ...

随机推荐

  1. 利用网络Socket和多线程实现一个双向聊天

    接收键盘输入然后向对方发送消息的线程 package cn.com.chat; import java.io.BufferedReader; import java.io.BufferedWriter ...

  2. WPF MVVM 关闭窗体

    由于程序采用MVVM模式同时有些操作需要单独窗口来进行处理.因此就会产生窗口关闭问题, 由于是MVVM和需要操作弹出窗口中操作的内容因此就需要在mvvm进行统一处理. 网上查了几种方法采用其中一种 不 ...

  3. 个人网站html5雪花飘落代码JS特效下载

    如何给自己的网站/页面添加雪花代码.特效呢?有的网站配合自己的主题模板添加雪花飘落效果挺好看的.特别是与冬天季节相关的主题,很多的博客空间都加了雪花的效果.在网上搜索了几种雪花效果,做了简单的修改,在 ...

  4. canvas的常用api

    canvas 标签 <canvas width="600" height="400" id="canvas"></canv ...

  5. 问题集锦 ~ CSS

    #button标签点击后出现点边框 input  {outline: none;} button::-moz-focus-inner {border:  none;}

  6. css 画三角形

    <div class='triangle-rihgt'></div> <div class='triangle-top'></div> <div ...

  7. angular中的ng-click指令案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 性能问题解决案例01——sybase数据库内存问题

    最近湖南现场反馈问题,所有电子签章页面打不开文书(pdf格式),后台日志没报任何错误. 1.首先想到是签章的ocx控件问题,检查ocx控件安装,发现其他电脑也打不开文书,测试页面可以直接打开pdf文档 ...

  9. FAQ: SBS 2011. The Windows SBS Manager service terminated unexpectedly

    Symptoms The Windows SBS Manager service is stopped with EventID 7034 every half an hour on SBS 2011 ...

  10. paramiko模块学习笔记

    SSHClient 基于用户名密码连接 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ss ...