文章目录
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
在Linux系统中,任何文件都属于某一特定用户,而任何用户都隶属于至少一个用户组。
用户名(username):每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
用户ID:每个用户不仅有唯一的用户名,还有唯一的用户id,用户id缩写为uid。对于系统内核来说,它使用uid来记录拥有进程或文件的用户。Linux系统分配的uid是一个32位的整数,即最多可以有2^32个不同的用户。
系统有一个数据库,存放着用户名与uid的对应关系,这个数据库存在配置文件/etc/passwd中,系统上的大多数用户都有权限读取这个文件,但是不能进行修改。
Ubuntu系统的安全性和多功能,依赖于如何给用户分配权限以及对其的使用方法。
当我们初次安装Ubuntu系统时,会被要求创建一个用户账号,系统会在home文件夹下建立一个以该用户名命名的文件,用于存储与该用户相关的文件。这种在安装系统时创建的第1个用户,虽然也是普通用户,但对比其他普通用户,该用户可以完成更多的管理功能。(在同类Linux系统中,往往只有root用户才能创建用户)。
用户分为3类:普通用户、超级用户、系统用户,其uid有不同的取值范围。
普通用户是使用系统最多的人群,用户主目录为/home/用户名。普通用户的权限不是很高,一般情况下只在自己的主目录和系统范围内的临时目录中创建文件。
查看用户名的方法:
① 在shell中可以查看用户名。
cd etc #进入cat目录
cat passwd #在shell中可以查看用户名
或
more passwd
② 利用图形编辑器来查看和管理用户,在文本编辑器gedit中,打开/etc/passwd文件可以查看普通用户的信息,如下图所示。
$ gedit /etc/passwd #在文本编辑器gedit中,打开/etc/passwd文件可以查看普通用户的信息

超级用户又称为root用户或系统管理员,使用/root作为主目录。在系统上拥有最高权限:可以修改和删除任何文件、可以运行任何命令、可以取消任何进程、增加和保留其他用户、配置添加系统软硬件。超级用户的uid、gid都为0。
在gedit中查看超级用户信息如下,root用户位于passwd文件的第一行,如图所示。

大多数Linux系统会将一些低uid保留给系统用户。系统用户不代表人,而代表系统的组成部分,例如处理电子邮件的进程经常以用户名mail来运行;运行Apache网络服务器的进程经常作为用户apache来运行。
因为不是真正的用户,所以系统用户没有登录shell,其主目录也很少在/home中,而在属于相关应用的系统目录中,如从下图中可以看到系统用户mail,其主目录在/var/mail下。

Linux系统的用户信息保存在配置文件/etc/passwd中,该文件是可读格式的文本,管理员可以利用文本编辑器来修改。而系统的大多数用户没有权限修改它,只能读取这个文件。
/etc/passwd 文件中的每行记录了一个合法用户账号的数据,每一行数据用冒号分隔,其格式如下:
username:password:uid:gid:userinfo:home:shell
其中,各个字段的含义如下表所示:

用户的加密密码被保存在/etc/passwd文件的第二个字段中。由于passwd文件包含的信息不仅仅有用户密码,每个用户都需要读取它,任何一个用户都有权限读取该文件从而得到所有用户的加密密码。而加密常用的md5算法,越来越容易被暴力破解,这样的密码保存方式是非常危险的。因此,在Linux和Unix系统中,采用了一种更新的“影子密码”技术来保存密码,用户的密码被保存在专门的/etc/shadow文件中,只有超级管理员的root权限可以查看,普通用户无权查看其内容。
① 在shell中可以查看文件。
cd etc #进入cat目录
cat shadow #在shell中可以查看文件
或
more shadow
② 利用图形编辑器来查看和管理用户,在文本编辑器gedit中,打开/etc/passwd文件可以查看普通用户的信息,如下图所示。
$ gedit /etc/shadow #在文本编辑器gedit中,打开/etc/passwd文件可以查看普通用户的信息

/etc/shadow文件中的每行记录了一个合法用户账号的数据,每一行数据用冒号分隔,其格式如下:
username:password:lastchg:min:max:warn:inactive:expire:flag
其中,各个字段的含义如下表所示:


例1:创建用户
说明:
(1)只有超级用户root和具有超级用户权限的用户才能建立新用户。
(2)useradd命令如果不加任何参数,建立的是“三无”用户:一无主目录,二无密码,三无系统Shell。
useradd user01 #超级用户user01
例2:建立新用户同时建立主目录
useradd -m user01 #建立新用户同时建立主目录
例3:建立新用户并设置密码
useradd –m user01 –g group01 –p 123456 #新建用户user01,创建主目录,指定组为group01(基本组),设置密码为123456
功能描述:创建新用户。
使用adduser创建用户时显示了建立用户的详细进程,同时包含部分人机交互的对话过程,系统会提示用户输入各种信息,然后根据这种信息创建新用户。使用简单,不用加参数,建议初学者使用。
格式:adduser 用户名
例:建立新用户
adduser user02 #创建新用户user01

例1:设置用户密码
passwd user01 #为用户user01创建管理口令
例2:锁定用户
passwd -l user01 #锁定user01用户
锁定账户后,这个账户不能使用了,解锁后可以使用。
锁定用户后,密码前显示“ ! ”。
例3:设置密码最大使用时间
passwd -x 4 user01 #设置user01账户最大密码使用时间为4天
例4:删除密码
passwd -d user01 #删除user01密码
功能描述:修改用户账户的信息。
usermod命令可以修改已存在用户的属性,如用户ID号、账号名称、主目录、用户组、登录shell等。
格式:usermod [选项] 用户名
选项:
例1:改变用户的组
usermod –g 1001 malimei #修改用户的组/主要组为1001
usermod –l user01 user –g 1001 –d /home/test #将user用户名修改为user01,用户组gid改为1001,用户主目录改为/home/test
例:删除user01用户
userdel user01 #删除用户user01,保留主目录
userdel user01 -r #删除用户user01及其主目录
ending~~~
有什么问题欢迎留言噢
我正在使用i18n从头开始构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在rubyonrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi
我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
我在新的Debian6VirtualBoxVM上安装RVM时遇到问题。我已经安装了所有需要的包并使用下载了安装脚本(curl-shttps://rvm.beginrescueend.com/install/rvm)>rvm,但以单个用户身份运行时bashrvm我收到以下错误消息:ERROR:Unabletocheckoutbranch.安装在这里停止,并且(据我所知)没有安装RVM的任何文件。如果我以root身份运行脚本(对于多用户安装),我会收到另一条消息:Successfullycheckedoutbranch''安装程序继续并指示成功,但未添加.rvm目录,甚至在修改我的.bas
是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s
电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。 准备工作: 1、U盘一个(尽量使用8G以上的U盘)。 2、一台正常联网可使用的电脑。 3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。 4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。 U盘启动盘制作步骤: 注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc