Android 自动播放音频 / Android auto play audio

Android 自动播放音频 / Android auto play audio

Prepare: make a folder called raw.
Right click res document -> new directory -> type res -> OK

Simply drag audio files into this folder.

Initialize MediaPlayer by: MediaPlayer mediaPlayer

Point the specific audio to this mediaPlayer: mediaPlayer = MediaPlayer.create(this, R.raw.[*your audio name here*]);

Play the audio: mediaPlayer.start();

If you want to auto play in when app starts, you need to write in onCreate function.

Sample:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
playAudio();
}

private void playAudio() {
MediaPlayer mediaPlayer;
mediaPlayer = MediaPlayer.create(this, R.raw.test_audio_1);

if (!mediaPlayer.isPlaying()) mediaPlayer.start();
else if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.start();
}
}//end playAudio

在Res文件夹下创建 raw文件夹.
右键 res 文件夹 -> 新建文件夹 -> 输入 raw -> OK

然后把音频文件拖入该文件夹下面

初始化MediaPlayer: MediaPlayer mediaPlayer

绑定播放音频: mediaPlayer = MediaPlayer.create(this, R.raw.[*your audio name here*]);

播放音频: mediaPlayer.start();

如果想app打开自动播放该app,需要在onCreate方法下触发该方法

举例:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
playAudio();
}

private void playAudio() {
MediaPlayer mediaPlayer;
mediaPlayer = MediaPlayer.create(this, R.raw.test_audio_1);

if (!mediaPlayer.isPlaying()) mediaPlayer.start();
else if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.start();
}
}//end playAudio

Enjoy coding!

ubuntu命令行添加拥有管理员权限新用户

*近买了个服务器,只有一个root用户,天天登录挺不方便的,所以想要新建用户;之前在本地都是用界面话新建的用户,这次记录一下学习命令行新建用户的过程:

*步 :

# sudo adduser zhq  这个zhq是你自己定义的用户名

接下类会出现一系列的输入信息,只要在有UNIX密码的地方输入 该用户的密码就行,然后再确认一次;

后面就是一路回车了. 然后用户就建好了。

但是此时该用户是不能sudo的,也就是不能使用管理员权限;接下里进行第二步

第二步:

# sudo vim /etc/sudoers

修改文件部分如下:

# User privilege specification
root ALL=(ALL:ALL) ALL
zhq ALL=(ALL:ALL) ALL (我自己仿照root添加的,其中zhq是我的用户名)

 

也有的是这样写的:

root ALL=(ALL) ALL

仿照root着添加就行了

保存退出,zhq用户就拥有了root权限。可以使用sudo了

ubuntu自己搭建邮件服务器

Ubuntu+Sendmail+Dovecot+Openwebmail搭建邮件服务器

1.安装apache

apt-get install apache2

2.安装sendmail

apt-get install sendmail

#sasl2-bin已经同时安装,如果自己安装需要将/etc/default/saslauthd start=no 改为yes才能启动服务。

2.1设定Relay IP

在/etc/mail/access中添加允许Relay的地址

Connect:192.168.0 RELAY    #允许192.168.0.0网络的IP地址通过sendmail发信,也可以写成192.168.0

2.2设置收信的域名

在/etc/mail/local-host-names中添加收信的域名

ssh.tw

mail.ssh.tw

接收发往ssh.tw域和mail.ssh.tw域的邮件

2.3设置sendmail侦听范围,默认只侦听本机

编辑/etc/mail/sendmail.mc,按照下边内容修改:

DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=0.0.0.0′)dnl

DAEMON_OPTIONS(`Family=inet, Name=MSP-v4, Port=submission, M=Ea, Addr=0.0.0.0′)dnl

修改完成后使用一下命令使修改生效:

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

2.5重启sendmail服务

/etc/init.d/sendmail restart

3.安装pop3服务

3.1需要的包:dovecot-common,dovecot-pop3d

apt-get install dovecot-common dovecot-pop3d

3.2修改配置文件/etc/dovecot/dovecot.conf(不使用ssl配置方法)

protocols = pop3
disable_plaintext_auth = no

ssl=no

mail_location = mbox:/var/mail:INBOX=/var/mail/%u

3.3重启dovecot服务

/etc/init.d/dovecot restart

3.4测试能否正常使用

telnet pop3_server 110

auth
user user_name

pass user_password

提示OK说明可以正常使用。

4.安装openwebmail

4.1下载openwebmail包

(地址:http://openwebmail.org/openwebmail/download/release/)

使用wget命令下载*新版的包到/tmp

4.2解压包到/var/www下

tar xvzf openwebmail.tar.gz -C /var/www

4.3安装所需要的包

apt-get install perl-suid    #不安装无法执行pl脚本

apt-get install libapache2-mod-perl2    #安装后apache2可以支持cgi程序

4.4修改cgi-bin的默认路径

编辑/etc/apache2/sites-available/default,修改下边两行:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/

<Directory /var/www/cgi-bin>

修改后重启apache

/etc/init.d/apace2 restart

4.5配置openwebmail所需要的配置文件:

4.5.1将/var/www/cgi-bin/openwebmail/etc/default/auth_unix.conf

复制到/var/www/cgi-bin/openwebmail/etc目录下,并修改以下两行:

passwdfile_encrypted /etc/shadow

passwdmkdb none

4.5.2将/var/www/cgi-bin/openwebmail/etc/default/dbm.conf

复制到/var/www/cgi-bin/openwebmail/etc/目录下,并修改以下一行:

dbm_ext .pag

4.5.3修改/var/www/cgi-bin/openwebmail/etc/openwebmail.conf

mailspooldir /var/mail

ow_cgidir /var/www/cgi-bin/openwebmail

ow_cgiurl /cgi-bin/openwebmail

ow_htmldir /var/www/data/openwebmail

ow_htmlurl /data/openwebmail

default_language zh_CN.GB2312

default_iconset Cool3D.Chinese.Simplified    #写不正确的话不显示图片

4.6运行以下命令配置openwebmail

/var/www/cgi-bin/openwebmail/openwebmail-tool.pl –init

4.7设置软连接访问openwebmail

在/var/www下建立openwebmail文件夹并建立软连接

mkdir openwebmail

cd openwebmail

ln -s /var/www/data/openwebmail/redirect.html index.html

5.访问http://serverip/openwebmail就可以访问openwebmail了。

6.发送邮件需要smtp认证的单独设置

6.1先来看一下/usr/lib/sasl2/Sendmail.conf文件里面的内容应该是pwcheck_method:saslauthd,将这个 文件复制成smtpd.conf,这个文件也要在/usr/lib/sasl2/目录下:

cp Sendmail.conf smtpd.conf

6.2编辑sendmail.mc,添加以下两行

TRUST_AUTH_MECH(`DIGEST-MD5 LOGIN PLAIN’)
define(`confAUTH_MECHANISMS’,`DIGEST-MD5 LOGIN PLAIN’)

6.3使配置生效:

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

/etc/init.d/sendmail restart

/etc/init.d/saslauthd restart

6.4注意事项

配置好后,可以使用smtp验证发送邮件,不使用smtp验证也能够发送邮件

原因:发送和接收邮件在域内,如果发送的邮件地址不在域内,则可能是 /etc/mail/access文件未清空。

解决:将 /etc/mail/access文件清空。

要注意的一点:

修改任何配置,需要重新启动sendmail。

转载自: http://www.usefulshare.com/terry-an/ubuntu-sendmail-dovecot-openwebmail.html

————————————————-
sendmail配置

邮箱用户的建立,可以用客户端收发邮件即正常

groupadd  mailgroup

useradd  -g mailgroup –s /sbin/nologin  wugk

passwd wugk 设置好密码即可。

Service  sendmail restart ;service dovecot restart ;service saslauthd restart 重启所有sendmail相关服务

六、配置openwebmail

* 邮件服务器需要网页访问:要实现访问地址为http://mail.linuxidc.com/ ,所以我们需要配置openwebmail,配置如下:前提是安装好httpd。

之前我们已经安装完了openwebmail,默认会生成/var/www/cgi-bin/openwebmail 这样一个文件夹,如果你的apache安装在其他目录,需要把openwebmail拷贝到相应目录下:

1、修改openwebmail配置如下:都是修改的内容:

[root@localhost ~]# vi  /var/www/cgi-bin/openwebmail/etc/dbm.conf

dbm_ext                 .db

dbmopen_ext             .db

dbmopen_haslock         no

然后初始化 ./var/www/cgi-bin/openwebmail/openwebmail-too.pl –init 按Y即可

2、修改vi /var/www/cgi-bin/openwebmail/etc/defaults/dbm.conf

dbm_ext                 .db

dbmopen_ext             .db

dbmopen_haslock         yes

3、修改vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf

domainnames                    linuxidc.com

default_language                zh_CN.GB2312

default_iconset                 Cool3D.Chinese.Simplified

4、修改vi /var/www/cgi-bin/openwebmail/etc/default/openwebmail.conf

domainnames             linuxidc.com

smtpserver              mail.linuxidc.com

authpop3_server         mail.linuxidc.com

然后再执行./var/www/cgi-bin/openwebmail/openwebmail-too.pl –init 按Y即可

5、apache修改配置文件

以下是apache配置段供参考:

<VirtualHost *:80>

ServerAdmin wugk@linuxidc.com

ServerName  mail.linuxidc.com

DocumentRoot /usr/local/apache-2.2.13/

ScriptAlias /cgi-bin/ “/usr/local/apache-2.2.13/cgi-bin/”

<Directory /usr/local/apache-2.2.13/>

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

RewriteEngine On

ProxyPreserveHost On

RewriteRule ^/$  http://mail.linuxidc.com/cgi-bin/openwebmail/openwebmail.pl [P,L,NC]

</VirtualHost>

配置完毕测试:你的做好DNS解析,遇到问题一点一滴解决,遇到的错误也很多,只有你真正去做了才会明白。

访问http://mail.linuxidc.com 页面如下:

——————————————–
‘编辑你的/etc/resolv.conf 里面加上nameserver 自己的IP
DNS服务器的修改是即时生效的,但这种修改方法在重启电脑后ubuntu系统会自动重写/etc/resolv.conf文件,恢复默认的DNS

————————————————
如果遇到 SendMail的”Relaying denied. IP name lookup failed问题

解决问题

修改access文件,将本机ip加入后,问题解决!

具体方法

/etc/mail/access

加入

xxx.xxx.xxx.xxx    RELAY

————————————————-

综合来讲精华如下

/var/www/cgi-bin/openwebmail/openwebmail-tool.pl –init
/etc/init.d/sendmail restart
/etc/init.d/saslauthd restart
/etc/init.d/apache2 restart

安装完毕增添用户
groupadd  mailgroup
useradd -g mailgroup -b /home/mailgroup/ -s /sbin/nologin guoxuechong
mkdir guoxuechong
chown guoxuechong guoxuechong/
passwd guoxuechong

http://hi.baidu.com/yanbin_yu/blog/item/91191609da1326cc3bc7633d.html
openwebmail 用户分组

修改openwebmail.conf設定,多加入以下幾行

(less openwebmail.conf.help有以下參數設定的意義)
abook_globaleditable yes
ow_addressbooksdir %ow_etcdir%/addressbooks
global_filterbook %ow_etcdir%/filter.book
global_calendarbook %ow_etcdir%/calendar.book

初始化openwebmail
/var/www/cgi-bin/openwebmail/openwebmail-tool.pl –init

設定global為系統的公用通訊錄設定者
cd /var/www/cgi-bin/openwebmail/etc/addressbooks/
chown global.global global (若無此檔案自建,不過2.52版會內建此檔與user global)
chmod 644 global
ln -s /var/www/cgi-bin/openwebmail/etc/addressbooks/global     /home/global/.openwebmail/webmail/address.book

*後使用global 登入openwebmail就可以修改公用通訊錄啦
但是這樣也是太麻煩囉!所以寫兩支程式來解決

Ubuntu添加新用户并增加管理员权限

$是普通管员
#是系统管理员
在Ubuntu下,root用户默认没有密码,因此无法使用。需要用root的话,就需要给root用户设置一个密码:sudo passwd root

  1. 添加新用户
    sudo su 进root
    sudo adduser xxx ,添加新用户

输入密码后,出现如下信息:

正在添加用户”xxx”…
正在添加新组”xxx” (1003)…
正在添加新用户”xxx” (1003) 到组”xxx”…
创建主目录”/home/xxx”…
正在从”/etc/skel”复制文件…
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
正在改变 xxx 的用户信息
请输入新值,或直接敲回车以使用默认值
全名 [ ]:
房间号码 [ ]:
工作电话 [ ]:
家庭电话 [ ]:
其它 [ ]:
这些信息是否正确? [Y/n] y

到这里,新用户添加成功。

  1. 增加管理员权限
    如果需要让此用户有root权限,执行命令:

sudo vim /etc/sudoers

修改文件,添加:
xxx ALL=(ALL:ALL) ALL

下面就是更改端口号,禁止root登陆
二, 禁止root远程登录

1.需要编辑/etc/ssh/sshd_config。

  1. vim /etc/ssh/sshd_config 找到 PermitRootLogin 改为 PermitRootLogin no

3.重启 service sshd restart

三, 修改Linux登录端口

  1. 修改sshd_config

    vim /etc/ssh/sshd_config

  2. 在port后面添加端口即可,这些端口都是并列的,添加后如下
    Port 22

    Port 443

  3. 重启ssh服务
    sudo service ssh restart

ubuntu 普通用户改为管理员模式方法

su root //提示输入密码,如果有密码输入即可,否则如下

在普通用户下输入

sudo password root

之后设置root密码

进行校对

su

设置完成

///

ubuntu安装系统时不能设置root密码

可使用命令sudo su切换到root(前提是当前用户在sudoers里)

从root用户切换到普通用户

方法1:输入命令exit  回车后回到普通用户

方法2:CTRL+D直接跳出root

ubuntu 作为服务器,创建新用户,并设置为管理员权限

前提准备:

使用 Xshell 远程登录 ubuntu 服务器

创建新用户:非root

1、在root 用户下运行下命令,创建一个新用户,tamir

$  useradd  -m  -s  /bin/bash   tamir

2、将新用户加入超级管理员组

$  usermod   -a   -G   sudo  tamir

3、为新用户设置密码

输入密码时,没有字符提示,正常输入即可

4、切换新用户

$  su  –   tamir

5、切换成功,@前是新用户名,而不是root

服务器上创建一个新的用户,并赋予root权限

当在网上购买一个服务器后,默认给的是一个root用户,拥有root权限,如果我们干什么都用root用户的话,很容易把系统给搞崩了,所以我们还需要创建一个普通用户,平时用的时候不具有root权限,当需要使用root权限的时候,又可以使用root权限,接下来说一说我做的过程(参考:https://www.cnblogs.com/fxlttkl/p/7601224.html)

1、创建一个普通用户

sudo adduser robot # for example robot is your new user name
1
创建过程会提示输入密码,输入你想设置的密码,然后其他的一路回车就可以了

创建完成后,执行

cd /home/
ls
1
2
就可以看到你新创建的用户了

你可以使用如下命令切换到新创建的用户,如果提示要输入密码,输入刚才设置的密码

su -l robot # for example robot is your new user name
1
执行 exit 可以退出刚才新创建的用户,回到root用户

2、查看新创建的用户属于那个组

执行如下命令:

groups robot # for example robot is your new user name
1
显示robot : robot冒号之前表示用户,后面表示该用户所属的用户组
查看root用户

groups root
1
显示root : root

3、将新建用户加入sudo用户组

执行如下命令:

sudo usermod -G sudo robot # for example robot is your new user name
1
查看新建用户的用户组

groups robot # for example robot is your new user name
1
可以看到如下内容

robot : robot sudo
1
说明新创建的用户已经加入sudo用户组,拥有了root 权限
然后切回新创建的用户,就可以使用root权限了

4、删除用户

sudo deluser robot # robot is your user name

Linux 服务器上建立用户并分配权限

查看用户

whoami #要查看当前登录用户的用户名
who am i #表示打开当前伪终端的用户的用户名
who mom likes

who 命令其它常用参数

参数 说明
-a 打印能打印的全部
-d 打印死掉的进程
-m 同am i,mom likes
-q 打印当前登录用户数及用户名
-u 打印当前登录用户登录信息
-r 打印运行等级

1. 创建用户

adduser这个命令,我们很容易理解其作用,因为完全可以顾名思义:add是英语“添加”的意思,user是英语“用户”的意思,因此adduser就是用于添加用户。

adduser newname // 新建用户newname

useradd 只创建用户,创建完了用 passwd lilei 去设置新用户的密码。
adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。
其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作

删除用户

deluser是delete和user的缩写,delete是英语“删除”的意思,user是“用户”的意思。

userdel newname

单单用deluser命令,不加参数的话,只会删除用户,但是不会删除在/home目录中的用户家目录。如果你想要连此用户的家目录也一并删除,可以加上 –remove-home 这个参数,如下:

deluser –remove-home newname

这样,不仅删除了newname这个用户,连/home/newname这个目录也会删除。

注意:adduser和deluser命令只是Debian一族(包括Ubuntu)才有的命令。其他的LInux发行版,一般来说,添加用户和删除用户是用useradd和userdel命令。
而且,用useradd添加用户之后,在默认的情况下,该账号是暂时被封锁的, 也就是说,该账号是无法登录,须要用passwd命令来给新创建的用户设置密码之后才可以使用。

创建组

addgroup是add和group的缩写,add是英语“添加”的意思,group是英语“群组”的意思。所以addgroup命令用于添加一个新的群组。

sudo addgroup siatstudent

groupadd testgroup

* 修改组*

groupmod -n test2group testgroup

删除组

delgroup是delete和group的缩写,delete是英语“删除”的意思,group是英语“群组”的意思。所以delgroup命令用于删除一个已存在的群组。

delgroup happy

就删除了happy这个群组。

groupdel test2group

注意:addgroup和delgroup命令只是Debian一族(包括Ubuntu)才有的命令。其他的LInux发行版,一般来说,添加用户和删除用户是用groupadd和groupdel命令。

查看组

cd /home
ls -l
#第三列表示文件或目录的所有者,第四列表示文件或目录的所在群组

groups #查看当前登陆用户所在的组
groups testnewuser #查看testnewuser 所在的组
cat /etc/group #查看所有组

passwd命令:修改密码

passwd命令是password这个英语单词的缩写,表示“密码”

passwd newname
1
usermod命令:修改用户账户

usermod是user和modify的缩写,user是英语“用户”的意思,modify是“修改”的意思。usermod命令用于修改用户的账户。

-l:对用户重命名,但是/home目录中的用户家目录名不会改变,需要手动修改。
-g:修改用户所在群组

usermod -g siatstudent newname

当然我们也可以一次将一个用户添加到多个群组,就用 -G 参数(大写的G)。用法如下:

usermod -G friends,happy,funny newname

以上命令把newname添加到friends,happy和funny三个群组。记得群组名之间要用逗号分隔,而且没有空格。

注意:使用usermod时要小心,因为配合-g或-G参数时,它会把用户从原先的群组里剔除,加入到新的群组。如果你不想离开原先的群组,又想加入新的群组,可以在-G参数的基础上加上-a参数,a是英语append的缩写,表示“追加”。例如:

usermod -aG happy newname

以上命令就把newname追加到群组happy里了,这样newname就属于两个群组:siatstudent和happy

groups newname #查看newname所属群组

2. 设置文件的权限

udo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

chmod命令详细用法
chmod命令:修改文件的访问权限
chmod是change和mode的缩写,change是英语“改变”的意思,mode是“模式”的意思。chmod命令用于修改文件的各种访问权限。

指令名称 : chmod
使用权限 : 所有使用者
使用方式 : chmod [-cfvR] [–help] [–version] mode file…

说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
参数 :
mode : 权限设定字串,格式如下 : [ugoa…][[+-=][rwxX]…][,…],其中
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行。

d:是英语directory的缩写,表示“目录”。就是说这是一个目录。
l:是英语link的缩写,表示“链接”。就是说这是一个链接。
r:是英语read的缩写,表示“读”。就是说可以读这个文件。
w:是英语write的缩写,表示“写”。就是说可以写这个文件,也就是可以修改。
x:是英语execute的缩写,表示“执行,运行”。就是说可以运行这个文件

访问权限是按照用户来划分的
%title插图%num

如上图,除开*个表示文件或目录属性的符号(此处是d,表示目录。如果是l,则是链接。如果是短横-,那么是普通文件。),其他的9个符号被划分为三组,从左到右分别

*组rwx表示文件的所有者对于此文件的访问权限。
第二组rwx表示文件所属的群组的其他用户对于此文件的访问权限。
第三组rwx表示除前两组之外的其他用户对于此文件的访问权限。

举例分析

ls -l file.txt
-rw-r–r–

我们从左到右来分析这些符号都表示什么:

-:*个短横表示这是一个普通文件。如果此处是d,那么表示目录;如果是l,那么表示链接,等等。
rw-:表明了文件的所有者(此处是newname)对文件有读,写的权限,但是没有运行的权限。也很好理解,因为这是一个普通文件,默认没有可执行的属性。记住:如果有w权限(写的权限),那么表明也有删除此文件的权限。
r–:表明文件所在的群组(此处是newname)的其他用户(除了newname之外)只可以读此文件,但不能写也不能执行。“可远观而不可亵玩焉”。
r–:表示其他用户(除去newname这个群组的用户)只可以读此文件,但不能写也不能执行。

综上所述,file.txt 这个文件是一个普通文件,不是一个目录,也不是链接文件,它的所有者newname可以读写它,但不能执行;其他的用户只能读。

记住:root是超级管家,它有所有权限,”只有它想不到的,没有它做不到的”。
它可以读、写、运行任意文件。

用数字来分配权限:chmod的*对用法

事实上,Linux系统对每种权限(r,w和x)分配了对应的数字:

权限 数字
r  4
w  2
x  1

所以,如果我们要合并这些权限,就需要做简单的加法了:将对应的数字相加。

假如我们要分配读,写权限,那么我们就要用4+2,就等于6。数字6表示具有读和写权限。

以下是可能的组合形式:

权限  数字 计算
— 0  0 + 0 + 0
r– 4  4 + 0 + 0
-w- 2  0 + 2 + 0
–x 1  0 + 0 + 1
rw- 6  4 + 2 + 0
-wx 3  0 + 2 + 1
r-x 5  4 + 0 + 1
rwx 7  4 + 2 + 1

所以,对于访问权限的三组(所有者的权限,群组用户的权限,其他用户的权限),我们只要分别做加法就可以了,然后把三个和连起来。

chmod 600 file.txt

例如:640分别表示:

文件的所有者有读和写的权限。
文件所在群组的其他用户具有读的权限。
除此之外的其他用户没有任何权限。

因此,我们可以给的*宽泛的权限就是 777:所有者,群组用户,其他用户都有读,写和运行的权限。这样,所有人就都可以对此文件“为所欲为”了。

相反,如果权限是000,那么没有人能对此文件做什么。当然,除了root,root可以做任何事。

用字母来分配权限:chmod的相对用法

我们需要知道不同的字母代表什么:

u:user的缩写,是英语“用户”的意思。表示所有者。
g:group的缩写,是英语“群组”的意思。表示群组用户。
o:other的缩写,是英语“其他”的意思。表示其他用户。
a:all的缩写,是英语“所有”的意思。表示所有用户。

当然了,和这些字母配合的还有几个符号:

+:加号,表示添加权限。
-:减号,表示去除权限。
=:等号,表示分配权限。

接下来,我们举例说明如何使用:

#文件file.txt的所有者增加读和运行的权限。
chmod u+rx file.txt

#文件file.txt的群组其他用户增加读的权限。
chmod g+r file.txt

#文件file.txt的其他用户移除读的权限。
chmod o-r file.txt

#文件file.txt的群组其他用户增加读的权限,其他用户移除读的权限。
chmod g+r o-r file.txt

#文件file.txt的群组其他用户和其他用户均移除读的权限。
chmod go-r file.txt

#文件file.txt的所有用户增加运行的权限。
chmod +x file.txt

#文件file.txt的所有者分配读,写和执行的权限;群组其他用户分配读的权限,不能写或执行;其他用户没有任何权限。
chmod u=rwx,g=r,o=- file.txt

-R参数:递归地修改访问权限

chmod配合-R参数可以递归地修改文件访问权限。

假如我要只允许newname这个用户能读,写,运行/home/newname这个目录的所有文件(当然,root不算,root可以做任何事),该怎么做呢?

chmod -R 700 /home/newname

chown命令

chown是change和owner的缩写,change是英语“改变”的意思,owner是英语“所有者”的意思。

因此chown命令用于改变文件的所有者。

chown命令:改变文件的所有者

后接新的所有者的用户名,再接文件名。例如:

chown newname file.txt

chown命令也可以改变文件的群组,用法如下:

chown newname:friends file.txt

这句命令就把file.txt这个文件的所有者改为newname,群组改为friends了。用法也很简单,就是在所有者和群组之间用冒号隔开。

-R参数:递归设置子目录和子文件

R是recursive的缩写,表示“递归”。所以如果chown命令配上-R参数,就会使得被修改的目录的所有子目录和子文件都改变所有者(或者连群组也改变,如果用上述冒号的方法来同时修改所有者和群组)。

想要把用户newname的家目录的所有子目录和文件都占为己有。我可以这么做:

chwn -R bids:bids /home/newname

这样不但使/home/newname这个目录的所有者和群组都变成bids,而且其子目录和子文件也都是如此。

chmod命令:修改访问权限

在Linux系统里,每个文件和目录都有一列权限属性。这一列访问权限指明了谁有读的权利,谁有修改的权利,谁有运行的权利。

chgrp命令:改变文件的群组

chgrp是change和group的缩写,change是英语“改变”的意思,group是英语“群组”的意思。

chgrp命令用于改变文件的群组。

后接新的群组名,再接文件名。例如:

chgrp newname file.txt

-----------------------
举例说明:Linux系统新挂载了一个硬盘,命名为publicspace。
设置一个公共盘publicshare,所有用户都可以访问该文件夹来分享文件

chmod 777 publicshare -R

若在该文件夹新建文件夹newname,只能让用户newname有权限对文件夹newname

#更改文件的所有者和组
sudo chown newname:newname newname

#更改文件的读写权限
sudo chmod go-rw newname

————————————————————————————

3. /etc/skel 目录

/etc/skel目录一般是存放用户启动文件的目录,这个目录是由root权限控制,当我们添加用户时,这个目录下的文件自动复制到新添加的用户的家目录下;/etc/skel 目录下的文件都是隐藏文件,也就是类似.file格式的;我们可通过修改、添加、删除/etc/skel目录下的文件,来为用户提供一个统一、标准的、默认的用户环境;

/etc/skel 目录下的文件,一般是我们用useradd 和adduser 命令添加用户(user)时,系统自动复制到新添加用户(user)的家目录下;如果我们通过修改 /etc/passwd 来添加用户时,我们可以自己创建用户的家目录,然后把/etc/skel 下的文件复制到用户的家目录下,然后要用chown 来改变新用户家目录的属主;

————————————————————————————
4. 新建用户的独立性
修改目录权限,使得Linux 每个账户只能查看自己的根目录,无法查看其它账户的目录。
首先要进入Linux系统下所有用户所在的文件夹

cd /home/

然后

chmod go-rw XXX.XXX

表示删除 XXX.XXX中组群和其他人的读和写的权限。
例如

chmod go-rw lili

这就是说设置lili这个目录只有lili可以查看,Linux下的其它账户无法查看。

Linux服务器上创建新用户

Linux服务器上创建账户用到useradd命名,一般常用以下命令:

$sudo useradd -m -s /bin/bash userName // 在/home目录下新建userName目录
$sudo passwd userName    //设置密码
会提示

Enter new UNIX password:

Retype new UNIX password:

passwd:password updated successfully
然后用新建的用户名和密码先登录服务器,不会出现界面,退出之后用管理员账号登录。

下面三个命令一般用不到,意思是在新建中不需要这三个命令,直接到配置桌面会话文件这一步。

$userdel -r userName    //删除用户
$useradd userName    //创建用户
$useradd -d /home/homeDir userName    //增加home目录
因为登录自己新建的用户之后不会出现桌面,而是灰色的画面,需要配置桌面会话文件,需要先sudo su进入root,进入新建用户的路径下,比如/home/XXX。

$echo xfce4-session>.xsession
$cat .xsession
创建成功之后会出现以下文件和一行命令xfce4-session
%title插图%num

我们的服务器需要进入Settings->Window Manager->Keyboard->Switch window …删除Super+Tab,可以使用tab键啦

云计算人才必备什么技能 怎么学好Docker容器

云计算人才必备什么技能?怎么学好Docker容器?Docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装Docker引擎的服务器上,也可以实现虚拟化。

随着云计算的飞速发展以及企业需求的多样化,Docker容器技术成为云计算人才必备的技能之一。很多人想要快速掌握Docker容器技术,接下来就给大家讲解Docker容器的四种网络模式。

%title插图%num

1、closed container 封闭式网络模式

没有网络协议栈的通信

使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息,只有lo网络接口。需要我们自己为Docker容器添加网卡、配置IP等。

2、bridged container 桥接式网络模式

各个容器之间网络协议栈单独分离

当Docker启动时,会自动在主机上创建一个docker0虚拟网桥,实际上是Linux的一个bridge,可以理解为一个软件交换机,它会在挂载到它的网口之间进行转发。同时,Docker随机分配一个本地未占用的私有网段(在 RFC1918 中定义)中的一个地址给docker0接口。当创建一个Docker容器的时候,同时会创建了一对veth pair 接口。这对接口一端在容器内,即eth0;另一端在本地并被挂载到docker0网桥,名称以veth开头。通过这种方式,主机可以跟容器通信,容器之间也可以相互通信。Docker就创建了在主机和所有容器之间一个虚拟共享网络。

3、joined container 联合挂载式网络模式

容器之间可以共享网络协议栈,即可以通过套接字来进行通信

这个模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享 IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信。

4、opentainer container 开放式网络模式

与主机共享网络协议栈

Host模式使用是在容器启动时候指明–network host,此时容器共享宿主机的Network Namespace,容器内启动的端口直接是宿主机的端口,容器不会创建网卡和IP,直接使用宿主机的网卡和IP,但是容器内的其他资源是隔离的,如文件系统、用户和用户组。直接使用宿主机网络。同样启动一个nginx,此时共享主机网络,根据情况来使用,这样子也不用做端口转发,网络传输效率会比较高。

如果你想快速掌握Docker容器,学好云计算开发,专业的学习让你高效、快速掌握企业所需的高薪技术!学完后可胜任运维工程师、云计算工程师以及Web渗透测试工程师等岗位。