linux 中更改用户权限和用户组的命令chmod,chgrp实例

linux 中更改用户权限和用户组的命令实例;

增加权限给当前用户 chmod +wx filename

chmod -R 777 /upload

用户组 chgrp -R foldname zdz

chown -R  所有者用户名.组名 文件夹名称
例如:chown -R  zdz.nginx KooBox

命令详解直接搜索就很多了,这里不多说了。

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

语法:chmod [who] [+ | – | =] [mode] 文件名

命令中各选项的含义为

u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
+ 添加某个权限。
– 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。

实例

修改文件可读写属性的方法
例如:把index.html 文件修改为可写可读可执行:
chmod 777 index.html

要修改目录下所有文件属性可写可读可执行:
chmod 777 *.*

把文件夹名称与后缀名用*来代替就可以了。
比如:修改所有htm文件的属性:
chmod 777 *.htm

修改文件夹属性的方法
把目录 /images/small 修改为可写可读可执行
chmod 777 /images/small

修改目录下所有的文件夹属性
chmod 777 *

把文件夹名称用*来代替就可以了

要修改文件夹内所有的文件和文件夹及子文件夹属性为可写可读可执行

chmod -R 777 /upload

总结linux下目录和文件的权限区别

文件:读文件内容(r)、写数据到文件(w)、作为命令执行文件(x)。
目录:读包含在目录中的文件名称(r)、写信息到目录中去(增加和删除索引点的连结)、搜索目录(能用该目录名称作为路径名去访问它所包含的文件和子目录)
具体说就是:
(1)有只读权限的用户不能用cd进入该目录:还必须有执行权限才能进入。
(2)有执行权限的用户只有在知道文件名,并拥有读权利的情况下才可以访问目录下的文件。
(3)必须有读和执行权限才可以ls列出目录清单,或使用cd命令进入目录。
(4)有目录的写权限,可以创建、删除或修改目录下的任何文件或子目录,即使使该文件或子目录属于其他用户也是如此。

查看目录权限

查看文件权限的语句:
在终端输入:
ls -l xxx.xxx (xxx.xxx是文件名)
那么就会出现相类似的信息,主要都是这些:
-rw-rw-r–
一共有10位数
其中: 最前面那个 – 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r– 代表的是其他人(other)
然后我再解释一下后面那9位数:
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
– 表示相应的权限还没有被授予
现在该说说修改文件权限了
在终端输入:
chmod o w xxx.xxx
表示给其他人授予写xxx.xxx这个文件的权限
chmod go-rw xxx.xxx
表示删除xxx.xxx中组群和其他人的读和写的权限
其中:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
其中:rwx也可以用数字来代替
r ————4
w ———–2
x ————1
– ————0
行动:
表示添加权限
– 表示删除权限
= 表示使之成为唯一的权限
当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:
-rw——- (600) 只有所有者才有读和写的权限
-rw-r–r– (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx—— (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx–x–x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限

Ubuntu下配置Tomcat以指定(非root)身份运行

通常情况下,在配置Tomcat生产环境时,通常会配置Tomcat以特定的身份运行(非root),这样有利于提高安全性,防止网站被黑后的进一步权限提升。

本文依赖的环境:

Ubuntu(其实大部分同样适用于CentOS)JVM(安装并已配置好环境变量)gcc、make等编译工具JAVA_HOME=/usr/lib/jvm/jdk1.7.0_55CATALINA_HOME=/usr/local/apache-tomcat-7.0.53运行Tomcat的用户名为tomcat

首先需要到Apache Tomcat官网下载最新版Tomcat

Apache Tomcat:http://tomcat.apache.org

下载好安装包,解压到/home/apache-tomcat-7.0.67下

# 进入Tomcat安装目录下的bin目录
cd /home/apache-tomcat-7.0.67/bin

# 解压commons-daemon-native.tar.gz
tar zxvf commons-daemon-native.tar.gz

cd commons-daemon-1.0.15-native-src/unix

# 这里需要gcc、make等编译工具,如果没有指定JAVA_HOME环境变量,则需要 --with-java= 参数指定jdk目录
./configure

# 上一步成功后,make
make

# make后,会在当前文件夹下生成一个名为 jsvc 的文件,将其复制到$CATALINA_HOME/bin目录
cp jsvc ../../

# 添加一个用来运行Tomcat的用户
useradd tomcat -M -d / -s /usr/sbin/nologin

# 回到$CATALINA_HOME/bin目录下
cd ../../

# 接下来便是修改$CATALINA_HOME/bin目录下的 daemon.sh 文件
# 设置其中的TOMCAT_USER=tomcat,JAVA_HOME=/usr/java/jdk1.7.0_79

# 如果$CATALINA_HOME/bin下的*.sh文件没有运行权限,则为其添加运行权限
chmod +x *.sh

# 设置$CATALINE_HOME文件夹及其所有子文件Owner为tomcat
chown -R tomcat:tomcat /home/apache-tomcat-7.0.67

# 启动Tomcat
daemon.sh start

设置Tomcat为Service

# 创建 $CATALINA_HOME/bin/daemon.sh 的一个链接到 /etc/init.d/ 下,service名为tomcat7
ln -s /home/apache-tomcat-7.0.67/bin/daemon.sh /etc/init.d/tomcat7

# 启动Tomcat
/etc/init.d/tomcat7 start
# 或者
service tomcat7 start

设置Tomcat开机自启动 (前提是已经设置Tomcat为Service)

# 设置开机自启动
update-rc.d tomcat7 defaults

# 取消开机自启动
update-rc.d tomcat7 remove

在CentOS下安装crontab服务

执行

crontab -e

提示:-bash: crontab: command not found
于是要安装这个crontab
查了一下资料,才知道它不叫cron,crond,crontab,crontabs,它叫vixie-cron
# yum install -y vixie-cron  执行安装
[root@node16 ~]# crontab -l
no crontab for root
[root@node16 ~]#
[root@node16 ~]# chkconfig –list crontab
在 crontab 服务中读取信息时出错:没有那个文件或目录
[root@node16 ~]# chkconfig –list cron
在 cron 服务中读取信息时出错:没有那个文件或目录
[root@node16 ~]# chkconfig –list crond
crond           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
[root@node16 ~]# service crond status
crond 已停
[root@node16 ~]# service crond start
启动 crond:                                               [确定]
[root@node16 ~]# service crond status
crond (pid  16932) 正在运行…
[root@node16 ~]#

在root下输入:crontab -l
如果提示:
no crontab for root
就输入crontab -e 会打开一个空白的文件。
直接:wq保存退出
然后一个新的crontab就生成了!

CentOS设置服务开机启动的方法

CentOS设置服务开机启动的两种方法

1、利用 chkconfig 来配置启动级别
在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd、mysqld、postfix等,安装后系统默认不会自动启动的。就算手动执行 /etc/init.d/mysqld start 启动了服务,只要服务器重启后,系统仍然不会自动启动服务。 在这个时候,我们就需要在安装后做个设置,让系统自动启动这些服务,避免不必要的损失和麻烦。 其实命令很简单的,使用chkconfig即可。
[天涯PHP博客]-[http://blog.phpha.com]
比如要将mysqld设置为开机自动启动:

chkconfig mysqld on

要取消掉某个服务自动启动,只需要将最后的参数 “on” 变更为 “off” 即可。

比如要取消 postfix 的自动启动:

chkconfig postfix off

值得注意的是,如果这个服务尚未被添加到 chkconfig 列表中,则现需要使用 –-add 参数将其添加进去:

chkconfig–-add postfix

如果要查询当前所有自动启动的服务,可以输入:

chkconfig-–list

如果只想看指定的服务,只需要在 “–-list” 之后加上服务名就好了,比如查看httpd服务是否为自动启动:

chkconfig–-listhttpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

此时0~6均为off,则说明httpd服务不会在系统启动的时候自动启动。我们输入:

chkconfig httpd on

则此时为:

httpd0:off1:off2:on3:on4:on5:on6:off

这个时候2~5都是on,就表明会自动启动了。

 

2、修改 /etc/rc.d/rc.local 这个文件:
例如将 apache、mysql、samba、svn 等这些服务的开机自启动问题一起搞定:

[天涯PHP博客]-[http://blog.phpha.com]
vi/etc/rc.d/rc.local
#添加以下命令
/usr/sbin/apachectl start
/etc/rc.d/init.d/mysqld start
/etc/rc.d/init.d/smb start
/usr/local/subversion/bin/svnserve-d

 

CENTOS 6.0 iptables 开放端口80 3306 22端口

#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
 #/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

 

#/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

 

然后保存: #/etc/rc.d/init.d/iptables save

查看打开的端口:

# /etc/init.d/iptables status

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

补充说明:

#关闭防火墙

/etc/init.d/iptables stop

service iptables stop # 停止服务

 

#查看防火墙信息

/etc/init.d/iptables status
#开放端口:8080

/sbin/iptables -I INPUT -p tcp –dport 8080 -j ACCEPT

 

#重启防火墙以便改动生效:(或者直接重启系统)

/etc/init.d/iptables restart

 

#将更改进行保存

/etc/rc.d/init.d/iptables save

 

另外直接在/etc/sysconfig/iptables中增加一行:

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT

#永久关闭防火墙 chkconfig –level 35 iptables off #此方法源自网络,未实验,安全考虑拒绝使用此方法

浅谈近两个月我去过的东莞华硕、TCL、夏新的维修客服,天下乌鸦一样黑!

华硕部分:我自己用的是华硕的 PADFONE INFINITY 华硕 A80,是上一手2013年5月份购买的,今年3月多的时候屏幕失灵了,触摸屏有一块区域按不了,可是我发票丢失了,还好机器在出厂日期的一年内,所以还能保,于是自行拿到东莞世博那个售后申请维修,早上拿的,结果下午打电话过来说我的已经ROOT过不能保修,而且我的虽然是行货,但是是港版的系统,客服告诉我因为ROOT过不能保修,说触摸屏更换一个要1000多,我说算了,他们告诉我检测费要30元,我说就先拿回去吧。然后客服告诉我要不要帮我刷回行货系统,只要给他100元就行了,我问是不是刷回去就有保修了?他们说不是。我说那不用了,我拿回来自己搞就好了。结果他又接着说:“那不如这样好了,我帮你刷回大陆的系统,你们只需要给30元就可以了”。我就答应了。这意味着什么,意味着其实我给30跟给100元是一样的,他可以私下赚70元。后来因为这个手机是行货系统,而且是新刷的没有ROOT过,于是我就把手机寄给在广州读大学的弟弟帮我拿到华硕哪里,客服二话不说第二天就修好了。

TCL部分:我嫂子今年4月份买了台么么哒,那一天我哥哥升级官方系统(官方升级)结果失败了,手机出问题,我叫哥哥送修,他不听就自己下了个刷机精灵尝试,结果刷机精力需要ROOT,我哥哥ROOT了后还是没搞好,我哥哥不知道可以恢复未ROOT状态的,第二天他拿去东莞不知道那一家TCL的售后(中域负责的)进行保修,结果那个人拆机后说ROOT了不保修,然后装回去,回家后我哥才发现屏幕花屏,比送修前更严重了。我问哥哥是怎么回事,他说他也不知道,客服说主板坏了因为没ROOT所以要给300元才能修好,于是我让我哥哥给手机我尝试看能不能搞好,我照着网上的参考图把机子打开,发现屏幕排线那里没有插好。我插回去后,屏幕可以显示了。然后我尝试线刷官方的ROM,结果一切顺利,机子正常使用!这又说明什么?说明客服就是打算骗你300元,主板根本没有坏!

夏新部分:这是我2013年9月份买的电话,夏新小王子,在苏宁卖的,电源键和USB插头早就有问题了,后来我有了华硕的手机这手机就成备用机了,一直想修但是没抽得出时间,6月份的时候有一次我顺路经过夏新的客服,就把手机拿过去了。由于这手机买的时候才599,所以我用的时候还是挺不珍惜的,所以几个角都有明显摔过的痕迹,机器成色很一般,客服告诉我:“你这个手机摔成这样,不知道能不能修哦,你要不要加200元换一台新的?这样的话保修时间可以重新计算。”其实挺心动的,这么便宜换新了,但是这只是我的备用机,换新就浪费了,接着我问:“直接维修可以吗?到时候要多少钱告诉我就好了。这样可以吗?” 她说:“可以”。 我又问:“我到时候修好后再决定换不换新这样可以吗?” 她说:“不可以,修了就不可以换新了。” 最后我就说:“那你送去维修吧。” 经过了几乎一个月的等待,我终于拿到了我的手机。让我惊讶的是回来的手机竟然是新的!我猜:在我送修的时候,客服就已经猜到夏新会帮我换新的,所以就问我要200元。

总结:

华硕售后态度好,可是会坑钱。

TCL不是我拿去售后的,所以我不知道态度如何,但是绝对是超级坑钱。

夏新的售后态度差,而且也是个坑!

所以,由此推断,所有售后都坑钱,我觉得当修为的收入一定不少!天天坑!大家去售后一定要心,最好带上有经验的人去!

真不知道这些企业搞什么飞机,连个客服也管不好,真TMD垃圾。

Linux环境 Mysql+Hibernate command denied to user 错误

栈头的样子:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SELECT command denied to user ‘XXX’@’XXX.XXX.XXX.XXX’ for table ‘XXX’

1.可能是权限原因

2.如果权限没有问题,并且是使用hibernate框架的前提下。可能是你的xml映射文件或者是annotation映射类里面设置了一个默认的schema名称,而叫这个名的schema在当前数据库不存在。这个shema变量叫catalog,均在xml和映射类中的头部,将其去掉即可以解决问题。

用java清除字符串里的样式标签

java 清除 HTML标签格式、CSS 样式

JAVA代码可以这样写:

public static String delTagsFContent(String content){
String strHtml="";//HTML文本代码
String strClear=strHtml.replaceAll( ".*?(.*?)<\\/body>", "$1"); //读出body内里所有内容
strClear=strClear.replaceAll("</?[^/?(br)|(p)][^><]*>","");//保留br标签和p标签
system.out.println(strClear);//输出结果
}

如果要保留IMG标签的话,正则表达式就是:</?[^/?(img)][^><]*>

如果想保留更多的标签,只在正则表达式改一下就可以了, </?[^/?(img)|(p)][^><]*> 这个保留(这里写的保留了img,p这两个标签)你指定的标签,其他的(包括font)全去掉, 如果你还有其他的标签想保留,直接在里面加一个 |(xxx)就行了

想去掉所有的标签的话正则表达式为:</?[a-zA-Z]+[^><]*>

JDK安装与环境变量配置

安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)

1:安装jdk 随意选择目录 只需把默认安装目录 \java 之前的目录修改即可
2:安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可
注:若无安装目录要求,可全默认设置。无需做任何修改,两次均直接点下一步。

安装完JDK后配置环境变量  计算机→属性→高级系统设置→高级→环境变量

系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)

系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

系统变量→新建 CLASSPATH 变量
变量值填写   .%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)
系统变量配置完毕

检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)

close