Board logo

标题: 【转载】LINUX精彩问答 [打印本页]

作者: 浪漫化石    时间: 2004-12-9 15:56     标题: 【转载】LINUX精彩问答

问题:APACHE系统参数。
安装路径:/etc/httpd
手动启动命令---httpd或apachectl start/restart
配置文件:/etc/httpd/httpd.conf

问题:启动APACHE后本机能访问测试页面,其它机不能访问页面?
解决:防火墙设置不能通过WWW访问,取消设置后问题解决。防火墙软件是IPTABLES。
可以用LOKKIT配置。

问题:安装的服务如何自动启动或取消自动启动。
解决:通过以下程序可以设置。
ntsysv — 基于文本的程序。它允许你为每个运行级别配置引导时要启动的服务。对于不属
于 xinetd 的服务而言,改变不会立即生效。你不能使用这个程序来启动、停止、或重新启
动不属于 xinetd 的服务服务。

chkconfig — 一个允许你在不同运行级别启动和关闭服务的命令行工具。对于不属于 xinetd
的服务而言,改变不会立即生效。你不能使用这个工具程序来启动、停止、或重新启动不属
于 xinetd 的服务服务。

问题:windows可以访问linux上的共享目录,但不能建文档。
解决:linux上的共享目录没有设置好权限,通过chmod设置解决。
三个位置顺序是:属主,同组成员,其它用户。
数字表示的权限是:4—读 2—写 1—可执行。
特殊权限:4--SUID 2—SGID   1---STICKY BIT
chmod 777 file/diretory     改变目录访问权限(完全访问)

范例:
chmod a=rwx file

chmod 777 file
效果相同
chmod ug=rwx,o=x file

chmod 771 file
效果相同
若用chmod 4755 filename可使此程序具有root的权限

chmod -R 1777 /home/samba/exchange
注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能
自由写文件,但不能删除别人的文件这个要求

问题:在linux如何访问windows的文件。
解决:通过smbclient程序,具体用法如下:
1. smbclient -L hostname <-U username> 说明:列出指定主机的共享资源。
2. smbclient \\\\server\\共享名 <-U username> 说明:连接网络共享资源。其用法类似ftp。
3. smbmount \\\\server\\共享名 -c 'mount /mnt/smb' 说明:安装指定主机的共享名到本地
的目录 注意:分隔符为反斜杠。

问题:安装samba后不能共享目录。
解决:如下配置smb.conf参数解决。smb.conf里面的参数太多。如果要用好SAMBA服务
需花时间研究。
samba三种典型配置
pub - 不需要密码,且可读写及删除文件。  
read-only - 不需要密码,但只可以读取文件。  
user1 - 需要密码,可读写及删除文件。
  
步骤如下:
  
一、首先以root身分登录进入系统。
  
二、编辑/etc/smb.conf文件,将"unix password sync = no"这个一句改为
  "unix password sync = yes"。这样子的话,以后系统增加使用
者时,会自动将该使用者的密码也更新到/etc/smbpasswd内 (Samba的帐号密码文件)。
  
三、到/home目录下增加下列目录,并指定这些目录的权限: 
  
/home/pub nobody:nobody 777   
/home/read-only root:root 755   
/home/user1 user1:user1 700
  
四、编辑/etc/smb.conf这个文件,修改:
  
  security = share
  
五、编辑/etc/smb.conf这个文件,到文件最后面增加下面几句:
  
  [public]
  comment = Public Areas
  path = /home/pub
  browseable = yes
  guest ok = yes
  writable =yes
  
  [read-only]
  comment = Read-Only Areas
  path = /home/read-only
  browseable = yes
  guest ok = yes
  
  [user1]
  comment = Password Required
  path = /home/user1
  browseable = yes
  writable = yes
  
 完成后存盘离开。
  
六、重行运行Samba:
  
  /etc/rc.d/init.do/smb restart

2003年7月22日
问题:samba不能share = user方式登录?
解决:没有正确配置samba用户和密码文件。正确配置方法如下:
1、建立Samba帐户文件,编辑帐户文件/etc/smbpasswd,删除不需要的帐户(不是必须)。
# cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd
# vi /etc/smbpasswd
2、编辑smbusers文件,增加samba用户名。
3、利用smbpasswd命令建立帐户的口令,最好与/etc/passwd的帐户口令相同。
# smbpasswd Samba用户名。没有修改前smbpasswd中用户密码用XXX表示,建立口令后
是一串密文。
4、编辑/etc/smb.conf文件, 修改[global]段的security=user,encrypt passwords = yes。

2003年7月23日
问题:在字符界面下vi程序和一些启动信息乱码。
解决:修改/etc/sysconfig/下的i18n文件,LANG改成“en_US.UTF-8”,可显示英文,但不
知道在字符界面下能否显示中文提示?

问题:在WINDOWS登录不了LINUX的SAMBA服务?
解决:防火墙设置不对。用LOKKIT设置后解决。防火墙的设置很重要,以后需花时间研
究一下IPTABLES。

问题:在TEST共享文件夹下不能看文件,但能建文件。(可能是文件夹权限设置问题)
解决:文件夹设置了777的权限,但文件是后来拷贝过去的,没有设置777权限。重新设置
后问题解决。

2003年7月24日
问题:不能远程登录MYSQL数据库。出现错误提示:ERROR 2013: Lost connection to MySQL
server during query。
解决:在网上查过资料后知道是REDHAT 8 的BUG,在my.cnf配置文件的[mysqld]中加一
句skip-name-resolve,重启数据库,问题解决。但具体原因还有明白。对配置文件的参数不
了解,如果要使用MYSQL数据库要买有关书籍学习一下。

问题:用rpm包安装MYSQL,PHP后,PHP不能连接MYSQL,出现错误提示:“Call to undefined
function: mysql_connect() in......"?
解决:要安装php-mysql-4.2.2-8.0.5.i386.rpm,在安装光盘3上有。

问题:下载了mysql-standard-4.0.14-pc-linux-i686.tar.gz,解压后不能安装?
解决:由于下载的是二进制版,所以不用安装,只要按安装手册中的要求进行目录权限等的
配置就可以了。具体操作在手册上有。以原码方式发布的软件才需要通
过./configure,make,make install等步骤安装。

7月28日
经验:安装配置一种软件前最好先阅读一下操作手册,里面已把安装使用中的问题和安装方
法列了出来,可以减少我们摸索的时间。网上也有很多有用的资源,但由于系统性差,分散,
查起来比较费力。所以最好是先看手册,再查网上资料。

经验:
1、进行MYSQL源码编译时的操作步骤(源自操作手册)
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
shell> scripts/mysql_install_db
shell> chown -R root /usr/local/mysql
shell> chown -R mysql /usr/local/mysql/var
shell> chgrp -R mysql /usr/local/mysql
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
2、进行MYSQL二进制版安装时的操作步骤(源自操作手册)
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
shell> bin/mysqld_safe --user=mysql &
or
shell> bin/mysqld_safe --user=mysql &

问题:APACHE 2.0.47+MYSQL+PHP4.3.2整合。
解决:先安装MYSQL,安装方法如上。PHP手册提示,在企业应用中不要使用APACHE2.X
与PHP的组合, 可能是APACHE2.X与PHP间的集成应用还没有充分测试。可能存在BUG。
所以不建议使用,但由于只是用于学习,所以选择APACHE2.0.47+PHP4.3.2的组合。上网
查过资料,现时只提供DSO(动态共享对象)方式集成。安装方法是参照php4.3.2的手册。
安装说明(Apache 2 共享模块版本)
1. gzip -d httpd-2_0_NN.tar.gz
2. tar xvf httpd-2_0_NN.tar
3. gunzip php-NN.tar.gz
4. tar -xvf php-NN.tar
5. cd httpd-2_0_NN
6. ./configure --enable-so
7. make
8. make install
  现在您已经将 Apache 2.0.NN 安装在 /usr/local/apache。本安装支持可装载模块
  和标准的 MPM prefork。之后,可以使用如下命令启动 Apache 服务器:
  /usr/local/apache2/bin/apachectl start
  如果成功,您可以停止 Apache 服务器并继续安装 PHP:
  /usr/local/apache2/bin/apachectl stop.
9. cd ../php4-NN
10. ./configure --with-apxs2=/usr/local/apache2/bin/apxs
11. make
12. make install
13. cp php.ini-dist /usr/local/lib/php.ini
  编辑 php.ini 文件以修改 PHP 的选项。如果您想要把此文件放到另外的位置,您需要
  在步骤 10 添加 --with-config-file-path=/path 选项。
14. 编辑 httpd.conf 文件,确保其包含如下两行:
  LoadModule php4_module modules/libphp4.so
  AddType application/x-httpd-php .php
您可以在这里选择各种扩展名。.php 是我们推荐的最简单的扩展名。
LoadModule 命令的右边参数必须指向您系统中 PHP 模块的路径。如果您完全按照前面

步骤配置,那么此路径就应该为 modules/libphp4.so。
15. 启动您的 Apache 服务器:
  /usr/local/apache2/bin/apachectl start
./configure --with-apache=/path/to/apache_source这个配置将生成 libmodphp4.a 库,
mod_php4.c 和一些相关的文件并且拷贝到 Apache 源程序目录中的 src/modules/php4 目
录下。然后用 --activate-module=src/modules/php4/libphp4.a 编译 Apache,Apache 编译系统
会生成 libphp4.a 并且将其静态地连接到 httpd 程序中。也就是我们说的静态编译方式。
作者: 浪漫化石    时间: 2004-12-9 15:57

7月30日
问题:使用PARTED工具分区时出错,造成系统文件系统出错。

8月19日
chmod 0750 /root &&
chmod 1777 /tmp /var/tmp
第一个命令确保不是所有的用户可以进入/root 目录(其他用户主目录有同样的访问权限)。
第二个修改是对$LFS目录下的所有tmp目录的访问权限设置为1777,以使所有用户可以写
入数据到/tmp或/var/tmp目录,但是不能删除其他用户创建的文件,不能删除其他用户的目
录是由sticky位,也就是1777的1来设定的)。
查看内核启动信息的方式是使用“dmesg”命令。 直接运行这个命令(不带参数)会将刚
才的启动信息调出来。 将它们定向到一个文件,使用“dmesg > temp”
8月18—22日
安装LFS
安装环境:WINDOWS 2003企业版服务器+VMWARE WORKSTATION 4.0+REDHAT 8.0
LFS分区文件系统:reiserFS
参考资料:http://lfs.linuxsir.com/htdocs/lfs/ 和本论坛的相关贴子
历时五天,在编译程序上开的时间最多。
出现的问题:
1、      chroot不成功,出错信息:not such file or directory。原因是有些程序不是静态链接。重
2、      新编译后成功chroot。
3、      编译动态PERL时出错,出错信息:找不到g++编译器。原因是我编译GCC时只是解了
4、      CORE包,没有解G++包。同时解压两个包,重新编译GCC,再编译PERL通过。
3、用GRUB启动LFS内核时出错,定在那里死机了,出错信息是说什么VF找不到之类,
原因是没把VMWARE的SCSI驱动加到内核(SCSI support->SCSI low-level
drivers->BusLogic SCSI support),把驱动加到内核重启系统正常。
BLFS BEGINNING.............

8月26日
/etc/skel目录
在LFS系统上面的新用户拥有一样的初始设置。 /etc/skel目录是被 /usr/sbin/useradd 使用
的。阅读man useradd可以得到更多信息开始需要建立一个/etc/skel 目录,最好使用root用
户。然后把你想要新用户拥有的配置文件拷贝到/etc/skel目录。比
如: .bash_profile, .bashrc, .bash_logout, dircolors, .inputrc, 和 .vimrc。
useradd -m -s/bin/bash test 可以建立test用户,并在、/HOME目录下建立相应目录。
/usr/sbin/useradd使用了一系列缺省设置,位于 /etc/default/useradd(如果这个文件存在的话)。
如果这个文件不存在,它会使用其内部缺省设置,可以用/usr/sbin/useradd -D 来列处这些设
置。

在启动的时候vim会读取 /etc/vimrc 和 ~/.vimrc (也就是说, 全局设置的vimrc 和用户设
置)。
设置DNS解释
>cat /etc/resolv.conf
nameserver 192.168.3.2

9月17日
APACHE2.0中的<Directory>指令总是用于磁盘上的目录;<File>应用于单独的文件;
<Location>应用没有相应目录或者文件的请求。<Directory~>等同于<DirectoryMatch>。

浏览器可以告诉服务器它们所偏爱的语言,内容编码以及字符集。如果服务器拥有相同文档
的多个版本,那么它就应该使用浏览器的偏好,以确保发送正确的页面。选择发送哪个文件
的工作要由mod_negotiation来执行。

9月19日
--enable-modules=most|all|list     静态配置模块
--enable-mods=most|all|list       DSO配置模块

增加外部模块:
方法一:./configure –with-module=module_type:/path/to/external_module.c
方法二:需要模块作者建立configure.m4的文件。

符号链接会出现安全问题,配置时需小心,符号链接不能配置认证。

允许文件存在于DocumentRoot以外,用Alias,AliasMatch
Alias /builds /raid/autobuilds/current_tarballs

文件移动重定向
Redirect [status_code] requested_URL new_URL

让用户拥有自已的站点
UserDir disable     禁止所有用户的站点
UserDir disable [user list] 禁止列表上的用户拥有站点
UserDir enable [user list] 启用列表中用户的站点

UserDir public_html   请求~user就会查找用户主目录下的public_html目录,该目录名称可
变。

UserDir http://www.server.com/users重定向 http://www.server.com/users/a
UserDir http://www.server.com/*/users 重定向 http://www.server.com/a/users
UserDir http://www.server.com/~*/users 重定向 http://www.server.com/~a/users

9月22日
使系统对PING没有反应
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
查找所有SUID,SGID位有效的文件
find / -type f \( -perm -04000 –o –perm -02000 \) \-exec ls –lg {} \;

查找没有主人的文件
find / -nouser –o nogroup

2003年12月26日
问题:启用DHCPD,DNS,WINS后,客户端浏览共享目录出现登录慢,浏览慢现象。
解决:由于把hosts文件的主机名取消了。重新添加主机名后故障排除。

2004年02月02日
文件属性
chattr命令修改
lsattr命令列出文件属性

文件属性定义
A   不要更新atime文件,当在笔记本电脑或NFS上限制磁盘I/0流量时,很有用,除2.0
系列外,这一属性不被其它内核支持。
a   文件仅能以追加方式打开,只有root才能设置这个属性。
c   文件保存在磁盘时,内核将自动压缩该文件。
d   文件标记,使其不能被转储。
i   文件不能被修改,删除或重命名,不能创建任何指向它的链接,并不能写入任何数据。
s   删除文件时,相应的磁盘存储块清零。
S   修改文件时,对其写入进行同步。
u   删除文件时,保存其内容。

Ulimit命令   设置限制   可以把命令加到profile文件里,也可以在
/etc/security/limits.conf文件中定义限制。
命令参数
-a     显示所有限制
-c     core文件大小的上限
-d     进程数据段大小的上限
-f     shell所能创建的文件大小的上限
-m   驻留内存大小的上限
-s     堆栈大小的上限
-t     每秒可占用的CPU时间上限
-p   管道大小
-n   打开文件数的上限
-u   进程数的上限
-v   虚拟内存的上限

2004年2月3日
awk ‘{print $2}’ 提取第二列数据
cut –d ‘:’ –f1   抽取第一个:号划定的域

samba用户级共享设置问题。
共享的目录权限要设置正确,

2004-3-12
samb共享
如果你没有目录的执行权限,就不能向这个目录拷贝文件夹。共享目录的掩码不能设置成
0660,要设成0770。
改变系统权限后,要重启SAMBA,权限才能生效。

2004-3-17
问题:使用scp拷贝大文件时会出现stalled(延迟),而且时间很长。
估计原因是两个主机硬盘速度相差太远所致。

2004-3-18
问题:SSH服务器不能用公钥认证方式登录。
原因:用户下的.ssh目录权限有问题,通过查询系统日志可看到出错提示。用ssh-keygen程
序自动建立.ssh目录后,登录成功。

使用 GnuPG
1、 加密
在生成密钥之后,我们就可以开始使用GPG来加密文件了。创建一个文本文件
test.file,输入一些字符,然后保存。
[root@tipy root]$ gpg -ea -r name test.file
其中name是你在上面用来生成密钥时输入的用户名,用这个用户名加密的文件
只能由这个用户名来解密。回车之后就会生成一个
test.file.asc的文件,这个就是加密之后的文件。-e 选项告诉GPG进行加密,
-a 选项告诉GPG加密成ASCII,这样适合邮件发送,而且还可以查看。如果不
是加密成ASCII形式,可以加密成二进制。-r 指定加密的用户。

2、解密
[root@tipy root]$ gpg -d test.file.asc >test.file
敲入回车以后,会要求你输入密码,只有输入上面生成密钥时的那个密码就行了,


15:35 2004-3-25
新安装软件的man文档设置。使用/etc/man.config配置文档。在该文档中添加MANPATH
     /usr/local/samba/man

15:32 2004-3-31
问题:安装redhat as 3.0,windows xp双系统。MBR在是windows xp的引导块。linux的引
导块装在分区的超级块中。用windows xp的引导程序引导双系统。由于在安装grub时没有
强制硬盘用LBA模式。造成系统安装后不能启动。
解决办法:用安装引导盘引导电脑,执行如下操作:
#chroot /mnt/sysimages
#grub-install --force-lba /dev/hdx
再用dd if=/dev/hdx bs=512 count=1 of=/mnt/boot.lin生成引导文件,再把该引导文件拷贝到
windows系统分区,引导成功。
10:14 2004-4-1
ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这
个命令.
ldconfig命令行用法如下:
ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache] [-c
FORMAT] [--format=FORMAT] [-V] [-?|--help|--usage] path...
ldconfig可用的选项说明如下:
(1) -v或--verbose : 用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有
它所创建的连接的名字.
(2) -n : 用此选项时,ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib,/usr/lib),也不扫
描配置文件/etc/ld.so.conf所列的目录.
(3) -N : 此选项指示ldconfig不重建缓存文件(/etc/ld.so.cache).若未用-X选项,ldconfig照常更
新文件的连接.
(4) -X : 此选项指示ldconfig不更新文件的连接.若未用-N选项,则缓存文件正常更新.
(5) -f CONF : 此选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf.
(6) -C CACHE : 此选项指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,此文件
存放已排好序的可共享的动态链接库的列表.
(7) -r ROOT : 此选项改变应用程序的根目录为ROOT(是调用chroot函数实现的).选择此项
时,系统默认的配置文件/etc/ld.so.conf,实际对应的为ROOT/etc/ld.so.conf.如用-r /usr/zzz时,打
开配置文件/etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf文件.用此选项,可以大大增加
动态链接库管理的灵活性.
(8) -l : 通常情况下,ldconfig搜索动态链接库时将自动建立动态链接库的连接.选择此项时,将
进入专家模式,需要手工设置连接.一般用户不用此项.
(9) -p或--print-cache : 此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字.
(10) -c FORMAT 或 --format=FORMAT : 此选项用于指定缓存文件所使用的格式,共有三
ld(老格式),new(新格式)和compat(兼容格式,此为默认格式).
(11) -V : 此选项打印出ldconfig的版本信息,而后退出.
(12) -? 或 --help 或 --usage : 这三个选项作用相同,都是让ldconfig打印出其帮助信息,而后
退出.

9:00 2004-4-6
在vimrc配置文档中设置 set nobackup,关闭vim的自动backup功能,使用文档存盘时不自
动生成“~”文档。

11:08 2004-4-30
domino for linux服务器配置方法。
按提示完成服务器安装后,要进行服务器配置,步骤如下:
1、先检查notes用户的环境变量,是否指向正确的lotus/bin和notesdata目录。
2、进入bin目录,执行./server -listen命令。这样服务器就起动了8585端口,用于服务器配
置。
3、要进行服务器配置,需要在 x windows 或windows下进行。如果你是在服务器端进行配
置的,那么你直接打server -remote命令就会启动一个java的配置程序进行配置。如果从远
程进行配置,就需要安装domino administrator client,并选择安装remote server setup程序。
这样就会安装serversetup.exe程序,最后在命令行输入serversetup.exe就可以了。
4、进行java界面后,所有的后续配置方法和windows的一样。
5、配置完成后,就可以用./server命令起动服务器了。

12:40 2004-7-8
1. 配置syslogd中央日志主机,倒很简单
a. 在中央日志主机的/etc/sysconfig/syslog中修改如下:
SYSLOGD_OPTIONS="-m 0 -r"
-r (remote)表示接受来自远程主机的日志

b. 在其他机子上的/etc/syslog.conf中加入一行
*.* @<中央日志主机的主机名或IP地址>

c. 重启syslogd
killall -HUP syslogd

d.可通过配置logrotate.conf设置日志文件的个数,大小和轮换周期等参数。由于logrotate不是后台进
程,所以为了自动化,要在cron里设置。
作者: 浪漫化石    时间: 2004-12-9 15:58

我有个怀疑
工程真有用linux系统的吗?
作者: 依窗吻风    时间: 2004-12-11 12:44

有的!
作者: 依窗吻风    时间: 2004-12-11 12:44

有的!
作者: 浪漫化石    时间: 2004-12-11 17:52


!我还是完全外行呢
作者: 之之    时间: 2004-12-12 21:53

我毕业了,用LINUX系统,REDHAT LINUX9.0




欢迎光临 工程家园 (http://heubbs.cn/) Powered by Discuz! 7.2