linux新建用户,用户组,以及权限的分配(摘自博客园)

                                                                                                                            linux新建用户,用户组,以及权限的分配   

 

原文url:https://www.cnblogs.com/clicli/p/5943788.html

 

Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。

一、Linux系统用户账号的管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。刚添加的账号是被锁定的,无法使用。
1、添加新的用户账号使用 useradd命令,其语法如下:
代码:
useradd 选项 用户名
其中各选项含义如下:
代码:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名 指定新账号的登录名。
例1:
代码:
# useradd –d /usr/sam -m sam
此命令创建了一个用户sam,
其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。
例2:
代码:
# useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
这里可能新建组:#groupadd group及groupadd adm 
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。
2、删除帐号
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:
代码:
userdel 选项 用户名
常用的选项是-r,它的作用是把用户的主目录一起删除。
例如:
代码:
# userdel sam
此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
3、修改帐号
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,其格式如下:
代码:
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:
代码:
-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名。
例如:
代码:
# usermod -s /bin/ksh -d /home/z –g developer sam
此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
4、用户口令的管理
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
代码:
passwd 选项 用户名
可使用的选项:
代码:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:
代码:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******
如果是超级用户,可以用下列形式指定任何用户的口令:
代码:
# passwd sam
New password:*******
Re-enter new password:*******
普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
为用户指定空口令时,执行下列形式的命令:
代码:
# passwd -d sam

此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。
passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:
代码:
# passwd -l sam
新建用户异常:
useradd -d /usr/hadoop -u 586 -m hadoop -g hadoop
1 Creating mailbox file: 文件已存在
删除即可 rm -rf /var/spool/mail/用户名
2 useradd: invalid numeric argument 'hadoop'
这是由于hadoop组不存在 请先建hadoop组
通过cat /etc/passwd 可以查看用户的pass
cat /etc/shadow 可以查看用户名
cat /etc/group 可以查看 组


linux下创建用户(二)
二、Linux系统用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

1、增加一个新的用户组使用groupadd命令。 其格式如下:

代码:
groupadd 选项 用户组

可以使用的选项有:
代码:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

例1:

代码:
# groupadd group1

此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1。

例2:

代码:
#groupadd -g 101 group2

此命令向系统中增加了一个新组group2,同时指定新组的组标识号是101。

2、如果要删除一个已有的用户组,使用groupdel命令, 其格式如下:

代码:
groupdel 用户组

例如:

代码:
#groupdel group1

此命令从系统中删除组group1。

3、修改用户组的属性使用groupmod命令。 其语法如下:

代码:
groupmod 选项 用户组

常用的选项有:
代码:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字

例1:

代码:
# groupmod -g 102 group2

此命令将组group2的组标识号修改为102。

例2:

代码:
# groupmod –g 10000 -n group3 group2

此命令将组group2的标识号改为10000,组名修改为group3。

4、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。 例如:

代码:
$ newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。


权限分配
分配权限
chown -R hadoop:hadoop /usr/hadoop/

让普通用户拥有root的权限
1.root登录
2.adduser 用户名
3.passwd 用户名
确定密码
4.修改/etc/passwd即可,把用户名的ID和ID组修改成0。

转载于:https://www.cnblogs.com/cc66/p/9225009.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BZOJ3555: [Ctsc2014]企鹅QQ

【传送门:BZOJ3555】 简要题意: 给出n个字符串长度为m,给出字符串的字符种数,求出相似的字符串个数 相似字符串的定义为:相同位置上两个字符串有且只有一个字符不相同时,两个字符串相似 题解: 乱…

bootstrap --- 按钮

<head><!-- 最新版本的 Bootstrap 核心 CSS 文件 --> <link rel"stylesheet" href"https://cdn.jsdelivr.net/npm/bootstrap3.3.7/dist/css/bootstrap.min.css" integrity"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4VaPmSTs…

bootstrap --- 分页

// bootstrap中给无序列表的ul元素添加pagination类即可.<ul class"pagination"><li class"disabled"><a href"#">&laquo;</a></li><li class"active"><a href"#">1</a&g…

图的基本知识

1.简介 图&#xff08;Graph&#xff09;是由顶点的有穷非空集合和顶点之间的边的集合组成&#xff0c;通常表示为&#xff1a;G(V,E)&#xff0c;G表示一个图&#xff0c;V是图G中顶点的集合&#xff0c;E是图G中边的集合。 图是一种复杂的非线性结构&#xff0c;在图结构中&a…

面向对象之封装

封装的两个含义&#xff1a; 1.把对象的状态和行为看成一个统一的整体&#xff0c;将二者存放在一个独立的模块中(类)&#xff1b; 2."信息隐藏", 把不需要让外界知道的信息隐藏起来,尽可能隐藏对象功能实现细节,字段; 封装机制在程序中的体现是&#xff1a;把描述对…

bootstrap --- 面板

基本样式 <div class"panel panel-default"><div class"panel-heading">面板头...</div><div class"panel-body">面板身体...</div><div class"panel-footer">面板脚...</div> </div>…

C#控件访问调用它的父级页面

C#控件访问调用它的父级页面 你建立一个winform程序,出来一个默认窗体Form1&#xff0c;再添加一个UserControl&#xff0c;默认名字为UserControl1;在Form1的窗口里写如下的代码: public partial class Form1 : Form { //寂义一个UserControl1对象 UserCo…

NSMapTable

跟NSDictionary用法差不多&#xff0c;不过区别是NSMapTable可以设置内存选项&#xff0c;例如可以设置key跟value的内存属性&#xff08;weak/strong&#xff09;&#xff0c;从而避免内存泄露。 例如这个 weakToWeakObjectsMapTable 方法可以获得一个key跟value都是weak的字典…

《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---23

以下为阅读《Linux命令行与shell脚本编程大全 第3版》的读书笔记&#xff0c;为了方便记录&#xff0c;特地与书的内容保持同步&#xff0c;特意做成一节一次随笔&#xff0c;特记录如下&#xff1a;转载于:https://www.cnblogs.com/guochaoxxl/p/7888810.html

bootstrap --- 弹出对话框

<button class"btn btn-primary btn-lg" data-toggle"modal" data-target"#myModal">点击触发模态对话框 </button><div class"modal fade" id"myModal" tabindex"-1" role"dialog" ari…

模意义下的FFT算法

//写在前面 单就FFT算法来说的话&#xff0c;下面只给出个人认为比较重要的推导&#xff0c;详细的介绍可参考  FFT算法学习笔记 令v[n]是长度为2N的实序列&#xff0c;V[k]表示该实序列的2N点DFT。定义两个长度为N的实序列g[n]和h[n]为 g[n]v[2n],  h[n]v[2n1],  0<n…

bootstrap --- 标签页切换

很多时候,我们希望写一个简单的标签页.以下使用bootstrap来实现… 首先导入bootstrap的依赖:jquery的依赖、bootstrap的依赖 注意: jquery的依赖要在bootstrap依赖的前面导入,原因是:bootstrap的某些功能是在jquery的基础上实现的 在 https://www.bootcdn.cn/jquery/ 导入jqu…

bootstrap --- 鼠标停留提示事件

使用bootstrap可以很简单的实现鼠标停留,提示的效果 <a href"#" data-toggle"tooltip" data-placement"right" title"Tooltip on right" class"btn btn-primary">工具提示</a> // data-toggle"tooltip&…

day 3 list列表生成式

1.定义一个list列表&#xff0c;里面元素是0-33 a []i 0 while i<33:a.append(i)i1print(a) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32] 2.range &#xff08;切片&#xff09; 1&…

2020校招前端知识点整理

自用的前端知识点整理笔记&#xff08;长期更新&#xff09; 开启面试造火箭模式&#x1f4d4;&#x1f448;点击获得更好的阅读体验 有错误的地方请指出&#xff0c;感激不尽 HTML 你是如何理解HTML语义化的&#xff1f;⭐ 总结&#xff1a;用恰当的标签来标记内容。 比如…

day18 面向对象

---恢复内容开始--- 1.1类的相关知识 声明 def functionName(args):"函数文档字符串""""函数体""" class 类名:"""类的文档字符串""""""类体""" #我们创建一个类 class…

Android studio导入support-v4.jar

support-v4.jar是support library。路径为<sdk>/extras/android/support/v4/android-support-v4.jar.转载于:https://www.cnblogs.com/Magina-learning/p/7899788.html

html5 --- 特性检测

使用Moderniz库可以对H5的特性进行检测,下载网址: https://modernizr.com // 在HTML 中的head标签中导入 <script src"/modernizr.min.js"></script>// ps:注意src的路径画布(canvas)特性检测: if (Modernizr.canvas){// 开始画... } else {// 浏览器不…

编程学习笔记(第三篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(3)软件开发的现状、UML扩展...

一、软件开发的现状 软件领域正在发生一个巨变&#xff0c;特别是近几年来&#xff0c;软件领域正在发生翻天覆地的变化。 这一变化主要以这个云 端大数据&#xff0c; 这些是随着目前最先进的一些技术的产生而产生的。 随着这些新的技术以及软件开发方法的不断的提升&#xf…

百度地图得到两地点(通过经纬度)的距离、 通过经纬度获取详细地址

1 /**2 * 计算两点间的距离3 * pt1 {lng:"12.34",lat:"3423"}第一个点的经纬度4 * pt2 {lng:"12.34",lat:"3423"}第二个点的经纬度5 * */6 getDistance:function(pt1,pt2){7 var map new BMap.Map(&…