Ubuntu管理多用户

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu管理多用户相关的知识,希望对你有一定的参考价值。

参考技术A 前段时间,实验室买了新服务器,老板也是说了不止一次要把实验室服务器给管理起来,俗话说好奇心是最好的老师。趁此机会,我学习了一下Linux的用户管理。在本地,我一般都会记录到OneNote,现在再次记录一下,方便今后查找。

首先是要了解Linux系统的文件权限分为所有者、同组的人以及其他人,所以在新建用户的时候,要指定该用户属于哪个组或者哪些组。为什么会有哪些组呢?一般来说,一个组不就行了嘛?其实不行,我们可以这么想,在大一刚入学的时候,会有很多社团,那每个人加入社团的数量是没有限制的。这里,大一新生就代表“Ubuntu系统用户”,社团就代表“组”。到这里,应该都能理解用户和组之间的关系了。在Ubuntu系统里,需要设定一个组为主组,其余的为附属组,主组与附属组之间的区别我现在还不是很清楚,在实际使用中还没有遇到需要区别主组与附属组的情况。
介绍完基本情况后,就可以敲命令了,首先查看系统中有哪些组以及这些组包含哪些用户:(这里显示的用户指的是把该组作为附属组的用户,无法显示把该组作为主组的用户)

运行上面这个命令,就可以得到类似下图的结果:

上图中的docker即代表docker组,组id是998,该组中有ubuntu这个用户,其中,ubuntu用户的附属组是docker,主组是什么这里看不到。如果想看主组,可以用下面的命令:

一般情况下,Ubuntu系统是没有nosu组,如果我们想要建普通用户,那么就要有一个nosu组。我第一次听到nosu组这个名字是从我室友那得知的,不过当时他认为“nosu”这个名字是自定义的,事实并非如此。为什么呢?从系统文件中就可以看出来。我们要启动nosu组的话,就得编辑一下系统文件:

看到的界面类似于下图:

如果没有经过任何修改的话,图中第23行应该是被注释掉的(或者其他不能被读取到的情况),但是这一行中出现了“nosu”这个名词,所以说明这是系统指定的组名,而不是自定义的。那么为了达到我们的目的,我们只需要改成如图所示就行。修改完上面这个文件后,我们可以再次查看group,核实下是否多了一个nosu组,如果没有的话,重启服务器再看看。

准备了这么多,接下去可以正式新建用户了,建用户反而简单,如果/home目录够用的话,可以不指定新用户的/home目录:

其中,-g nosu代表将新用户的主组指定为nosu。如果需要指定新用户的/home目录:

这样就把新用户的家目录改到“/data/account/用户名”下了。
然后,如果新用户需要用到docker的话,就得把新用户加到docker组。那么,好奇的同学就会问:这个docker组怎么来的呢?我一开始也有这个问题,我第一次得到结果是问的我室友,第二次,我是自己重装了Ubuntu系统,再装了docker,从而验证了一下。当遇到问题时,问别人是最快的方式,但是如果自己动手加以验证,那就更好了。
此时,还需要设置一下新用户的登录密码:

至此,新用户就可以登录了。

修改新用户的主组为docker:

删除用户在系统文件中的记录(以及用户家目录):

Ubuntu下Apache+SVN搭建SVN服务多项目管理

一、系统环境

[email protected]:~# cat /etc/issue

Ubuntu 16.04.2 LTS \n \l

二、创建svn组和用户

[email protected]:~# addgroup svnser

Adding group `svnser‘ (GID 1001) ...

Done.

[email protected]:~# useradd svnser -g svnser -m    #新增svnser用户,-g并指定所在的组svnser,-m同时创建svnser用户所在的家目录

三、安装Apache和svnserver

[email protected]:~# apt-get -y install apache2

[email protected]:~# apt-get -y install subversion  libapache2-svn

四、创建版本库目录

[email protected]:~# mkdir -p /data/svn

[email protected]:~# svnadmin create /data/svn/repos01

[email protected]:~# svnadmin create /data/svn/repos02

[email protected]:~# svnadmin create /data/svn/repos03

[email protected]:~# ls /data/svn/

repos01  repos02  repos03

[email protected]:~# ls /data/svn/repos01/

conf  db  format  hooks  locks  README.txt

五、创建项目目录结构并导入

[email protected]:~# mkdir -p test/{branches,tags,trunk}

导入项目到版本库(初始化):

[email protected]:/data/svn# svn import /root/test file:///data/svn/repos01 -m "test import" 

Adding         /root/test/branches

Adding         /root/test/tags

Adding         /root/test/trunk

Committing transaction...

Committed revision 1.

========================================================

/root/test   ----------------> 需要导入的项目

file:///data/svn/repos01   -----> 表示一个项目的版本库

六、将SVN配置到apache中通过web方式访问

[email protected]:/etc/apache2# mkdir svn-repos

[email protected]:/etc/apache2/svn-repos# vim repos01.conf

<Location /svn/repos01>

    DAV svn

    SVNPath /data/svn/repos01

    AuthzSVNAccessFile /data/svn/repos01/conf/authz

    AuthType Basic

    AuthName "Subversion Repository"

    AuthUserFile /data/svn/repos01/conf/dev_passwd

    Require valid-user

</Location>

注:此配置文件告诉apache关于svn的访问路径已经相关配置文件,这里注意访问的根目录。重启apache服务器,然后就可以通过http://192.168.0.66:8000/svn/repos01进行访问  

###############################################

/etc/apache2/apache2.conf       <===========此文件新增如下一行:

IncludeOptional svn-repos/*.conf

################################################

/etc/apache2/ports.conf        <===========此文件修改Listen 80为:Listen 8000

################################################

/etc/apache2/sites-enabled/000-default.conf     <====此文件修改<VirtualHost *:80>为:<VirtualHost 127.0.0.1:8000>  ,新增一行ServerName 127.0.0.1

重启apache服务:/etc/init.d/apache2 restart


======================================


七、添加svn用户

[email protected]:/data/svn/repos01/conf# htpasswd -m -b -c /data/svn/repos01/conf/dev_passwd  test01 ‘PWDtest‘      #第一次创建svn用户需要通过-c参数,第二次增加用户不用-c参数。

通过客户端或者浏览器进行访问输入http://192.168.0.66:8000/svn/repos01 

命令行使用svn checkout http://192.168.0.66:8000/svn/repos01  --username test01 --password PWDtest

八、用户权限设置

新增如下配置

[email protected]:/etc/apache2/mods-enabled# cat dav_svn.load


.........略

LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so

LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so

LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so

LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

用户目录权限设置:

[email protected]:~# cat /data/svn/repos01/conf/authz 


[groups]                           #设置组

admin = test01,test          #设置组用户

[/]                              #项目版本库根目录,admin拥有读写权限

@admin = rw

* =                               # 其他用户无任何权限




可以通过nginx+proxy+allow 来控制用户IP访问限制

本文出自 “点滴集” 博客,请务必保留此出处http://1606496.blog.51cto.com/1596496/1929869

以上是关于Ubuntu管理多用户的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用命令操作

Linux常用命令

linux常用命令(转载)

LinuxLinux中常用操作命令

linLINUX中常用操作命令

LINUX中常用操作命令