Centos 5 su: Установка CentOS 5 | Блог Линуксоида

Содержание

Установка CentOS 5 | Блог Линуксоида

Детальное описание установка серверной операционной системы Linux CentOS 5.5. Которое проведет вас по всем этапам установки данной операционной системы от загрузки дистрибутива до окна входа в систему !

1 Для установки понадобится

Для установки такой системы вам понадобится следующее:

Скачать CentOS 5.5 DVD или семь компакт-дисков CentOS 5.5. (в данной установки выбрана архитектура x86_64 , также можно скачать дистрибутив с архитектурой i386 )

http://mirror.yandex.ru/centos/5.5/isos/x86_64/
http://mirror.corbina.net/pub/Linux/centos/5.5/isos/x86_64/
http://mirror.svk.su/centos/5.5/isos/x86_64/

Быстрое интернет соединение.

2 Примечание к установки

В этом руководстве используются имя хоста server1.example.com с IP адресом 192.168.0.100 и шлюз 192.168.0.1. Эти параметры могут отличаться от ваших, поэтому вам придется заменить их в случае необходимости.

3 Установка системы CentOS

Загрузиться с первого CentOS 5. 5 CD (CD 1) или CentOS 5.5 DVD. Нажмите ENTER:

Данный тест может занять много времени так что пропустим его.

Добро пожаловать на экран установки CentOS. Щелкните на Далее.

Выберите Ваш язык.

Выбор раскладки клавиатуры.

Для установки CentOS 5.5 на новую систему, мы отвечаем Да на вопрос Вы бы хотели, чтобы инициализировать этот диск, удаление всех данных?

Теперь мы должны выбрать схемы разметки для нашей установки. Для простоты выбираем удалить разделы.

Ответьте на следующие вопросы (Вы уверены, что хотите это сделать?) жмём ДА:

По умолчанию для настройки сетевых интерфейсов стоит с

DHCP, но для установке нашего сервера, нам нужен статический

IP — адреса это не плохая идея. Нажмите на кнопку «Изменить» в правом верхнем углу.

В всплывающем окне снимите использованию динамической конфигурации IP(DHCP), включить поддержку протокола IPv6 и дать вашей сетевой карты cтатический IP-адрес VPN-соединения. (в этом руководстве, используется IP-адрес 192. 168.0.100 в демонстрационных целях), а также подходящие маской ( например, 255.255.255.0, если вы не уверены в праве ценностей, http://www.subnetmask.info может помочь Вам):

Задать имя вручную, например server1.example.com и введите шлюз (например 192.168.0.1) и до двух DNS-серверов (например 213.191.92.86 и 145.253.2.75):

Выберите часовой пояс:

Задайте root пароль:

Сейчас мы выбираем программное обеспечение, которое мы хотим установить. Выберите только сервер(снимите все остальное). Кроме того, не проверяйте пакеты с CentOS Extras. Затем проверьте нажмите кнопку Далее:

Теперь мы должны выбрать пакет групп которые мы хотим установить. Выберете Editors, Text-based Internet, Development Libraries, Development Tools, DNS Name Server, FTP Server, Mail Server, MySQL Database, Server Configuration Tools, Web Server, Administration Tools, Base, и System Tools (отменить все другие группы пакетов) и нажмите кнопку Далее:

Программа установки проверяет зависимости в выбранных пакетах.

Нажмите Далее, чтобы начать установку.

Жесткий диск отформатирован.

Установка Начинается. Это займет несколько минут.

Наконец, установка завершена, и вы можете извлечь свой компакт-диск или DVD из компьютера и перезагрузить его.

После перезагрузки увидим форму входа в систему.

Установка системы завершена.

Centos5.5 Nginx 0.8.33 + PHP5.3.1(fpm) + MySQL5.5.0(phpmyadmin) — полная настройка для начинающих — 1 часть / Хабр

Centos5.5 Nginx 0.8.33 + PHP5.3.1(fpm) + MySQL5.5.0(phpmyadmin)

Недавно мой знакомый купил ВПС, и конечно же ему захотелось развернуть полноценный сервер, плюс учитывая начальные ресурсы: 768Мб памяти и 2 ядра выделеных на его контейнер, сервер должен быть не прожорливым и быстрым, на нем будет крутиться blog. Решил поставить nginx, и php+php-fpm. Думаю nginx описывать не буду, как и php+php-fpm обзоры можно найти на хабре. Вот только вся соль проблемы в том, что он хотел поставить все правильно, как в учебнике. Заглянул по форумам, перегуглил весь интернет, но так и не нашел правильного пацанского мануала. Везде только основные моменты настроек и установки сервера. Так не пойдет, сказал он и пришел ко мне. Одна голова хорошо, но пиво в двоем пить лучше!

Стали составлять план, что нам нужно для работы.

! Данный пост предназначен только для начинающих, для тех кто не имеет опыта в установке и настройке сервера. Вам будет понятно на примере что и где и как установить, и потом углубившись в мануалы и вооружившись напильником, сделать все конкретно под ваши задачи.

Как минимум для начала работы нужно:

Putty — the.earth.li/~sgtatham/putty/latest/x86/putty.exe — SSH client

Centos 5.5 — последяя будет уже стоять на серваке.

Nginx 0.8.33 — можно выбрать и старший релиз или стабильный.

PHP 5.3.1 — думаю проблем с ней не будет.

MySQL 5.5.0 — база!

php-fpm патч

suhosin-patch

libevent-1.4.13-stable

и далее все остальные пакеты которые понадобятся для компиляции и работы сервера:

gcc gcc-c++ libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libmcrypt libmcrypt-devel pcre-devel

работаем под рутом.

1. для начала цепляем EPEL repo.

EPEL хранилище поддерживается группой Fedora Core, которое содержит полезные программы. Как только это хранилище добавлено, вы можете установить все нужные пакеты оттуда, и включить его в будущем для обще-системных обновлений.

rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

Далее проверяем и устанавливаем пакетики:

yum -y install gcc gcc-c++ libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libmcrypt libmcrypt-devel pcre-devel

Затем еще раз для надежности:

yum -y update

Устанавливаем правильный autoconf-2.

13, перед этим удалив старый

yum remove autoconf
cd /usr/local/src
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz
tar -xzvf autoconf-2.13.tar.gz
cd autoconf-2.13
./configure
make && make install

Ура, и вот сейчас тянем все наше добро:

cd /usr/local/src
wget http://nginx.org/download/nginx-0.8.33.tar.gz
wget http://ru.php.net/get/php-5.3.1.tar.gz/from/ru.php.net/mirror
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.0-m2.tar.gz/from/http://opensource.become.com/mysql/
wget http://download.suhosin.org/suhosin-patch-5.3.1-0.9.8.patch.gz
wget http://launchpad.net/php-fpm/master/0.6/+download/php-fpm-0.6~5.3.1.tar.gz
wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz

2. Начинаем установку с MySqL 5.5.0

cd /usr/local/src
tar -xzvf mysql-5.5.0-m2.tar.gz
cd mysql-5.5.0-m2
./configure --prefix=/usr/local/mysql --localstatedir=/var/lib/mysql --with-comment=Source --with-server-suffix=-enterprise-gpl --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=utf8 --with-collation=utf8_general_ci --with-pthread --enable-static --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-ndb-debug --enable-local-infile --with-readline --with-plugins=innobase
make && make install

установка займет какое-то время, поэтому переключитесь на пиво!

если все прошло хорошо, то далее сделаем юзера, базу и конфиг:

useradd mysql
cd /usr/local/mysql
bin/mysql_install_db --user=mysql
chown -R root:mysql .     # точка самое главное!!!
chown -R mysql /var/lib/mysql
chgrp -R mysql .    # и здесь точка в конце!!!
cp share/mysql/my-medium.cnf /etc/my.cnf
cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
echo "/usr/local/mysql/lib" >> /etc/ld.so.conf && ldconfig
 
/etc/rc.d/init.d/mysqld start # запускаем двигло
bin/mysqladmin -u root password "123456" # поменяйте пароль!!!
service mysqld stop

3. PHP 5.3.1 — ставим патчим и компилим:

www.hardened-php.net/suhosin/index.html

не забываем откатываться

cd /usr/local/src

tar -xvzf php-5.3.1.tar.gz
gunzip suhosin-patch-5.3.1-0.9.8.patch.gz
cd php-5.3.1
patch -p 1 -i ../suhosin-patch-5.3.1-0.9.8.patch
./buildconf --force

чтобы установить патч пхп-фпм сначало компилим libevent

cd /usr/local/src
tar -zxvf "libevent-1.4.13-stable.tar.gz"
cd "libevent-1.4.13-stable"
. /configure && make
make install

затем парочка пацанских трюков, ахалай-махалай

export PHP_VER=5.3.1
cd /usr/local/src
tar -zxvf "php-fpm-0.6~$PHP_VER.tar.gz"
"php-fpm-0.6-$PHP_VER/generate-fpm-patch"
cd "php-$PHP_VER"
patch -p1 < ../fpm.patch
./buildconf --force

и переходим к самой установке пропатченого и улучшенного пхп

cd /usr/local/src/php-5.3.1
mkdir fpm-build && cd fpm-build
../configure --prefix=/usr/local/webserver/php --with-pear=/usr/share/php --with-zlib-dir --with-bz2 --with-libxml-dir=/usr --enable-gd-native-ttf --enable-gd-jis-conv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-ttf=shared,/usr --enable-mbstring --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/etc --with-iconv --enable-static --enable-zend-multibyte --enable-inline-optimization --enable-sockets --enable-soap --with-openssl --with-gettext --enable-sysvsem --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --with-mcrypt --with-curl --with-curlwrappers --enable-mbregex --enable-bcmath --enable-shmop --enable-suhosin --with-fpm --with-libevent=shared,/usr/local/lib
make && make install
cp php. ini.default /etc/php.ini
echo "/usr/local/webserver/php/lib" >> /etc/ld.so.conf && ldconfig

все установилось? тогда с php закончили.

3.а. создадим группу и юзера с папками для веба:

/usr/sbin/groupadd www -g 48
/usr/sbin/useradd -u 48 -g www www
mkdir -p /website/htdocs/blog
chmod +w /website/htdocs/blog
chown -R www:www /website/htdocs/blog
mkdir -p /website/htdocs/www
chmod +w /website/htdocs/www
chown -R www:www /website/htdocs/www

настроим php-fpm:

mkdir /usr/local/webserver/php/logs
cp /usr/local/src/php-fpm-0.6-5.3.1/conf/php-fpm.conf.in /usr/local/webserver/php/etc/php-fpm.conf
vi /usr/local/webserver/php/etc/php-fpm.conf

и сам конфиг файл:

    
<?xml version="1.0" ?>
<configuration>
	All relative paths in this config are relative to php's install prefix
	<section name="global_options">
		Pid file
		<value name="pid_file">/usr/local/webserver/php/logs/php-fpm. pid</value>
		Error log file
		<value name="error_log">/usr/local/webserver/php/logs/php-fpm.log</value>
		Log level
		<value name="log_level">notice</value>
		When this amount of php processes exited with SIGSEGV or SIGBUS ...
		<value name="emergency_restart_threshold">10</value>
		... in a less than this interval of time, a graceful restart will be initiated.
		Useful to work around accidental curruptions in accelerator's shared memory.
		<value name="emergency_restart_interval">1m</value>
		Time limit on waiting child's reaction on signals from master
		<value name="process_control_timeout">5s</value>
		Set to 'no' to debug fpm
		<value name="daemonize">yes</value>
	</section>
	<workers>
		<section name="pool">
			Name of pool. Used in logs and stats.
			<value name="name">default</value>
			Address to accept fastcgi requests on.
			Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'
			<value name="listen_address">127. 0.0.1:9000</value>
			<value name="listen_options">
				Set listen(2) backlog
				<value name="backlog">-1</value>
				Set permissions for unix socket, if one used.
				In Linux read/write permissions must be set in order to allow connections from web server.
				Many BSD-derrived systems allow connections regardless of permissions.
				<value name="owner"></value>
				<value name="group"></value>
				<value name="mode">0666</value>
			</value>
 
			Additional php.ini defines, specific to this pool of workers.
			These settings overwrite the values previously defined in the php.ini.
			<value name="php_defines">
				<!-- <value name="sendmail_path">/usr/sbin/sendmail -t -i</value> -->
			 <value name="display_errors">1</value> 
				<!-- <value name="error_log">/var/log/php-error.log</value> -->
        		<!-- <value name="log_errors">true</value> -->
			</value>
 
			Unix user of processes
			<value name="user">www</value>
			Unix group of processes
			<value name="group">www</value>
			Process manager settings
			<value name="pm">
				Sets style of controling worker process count. 
				Valid values are 'static' and 'apache-like'
				<value name="style">static</value>
				Sets the limit on the number of simultaneous requests that will be served.
				Equivalent to Apache MaxClients directive.
				Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
				Used with any pm_style.
				<value name="max_children">128</value>
				Settings group for 'apache-like' pm style
				<value name="apache_like">
					Sets the number of server processes created on startup.
					Used only when 'apache-like' pm_style is selected
					<value name="StartServers">20</value>
					Sets the desired minimum number of idle server processes.
					Used only when 'apache-like' pm_style is selected
					<value name="MinSpareServers">5</value>
					Sets the desired maximum number of idle server processes.
					Used only when 'apache-like' pm_style is selected
					<value name="MaxSpareServers">35</value>
				</value>
			</value>
			The timeout (in seconds) for serving a single request after which the worker process will be terminated
			Should be used when 'max_execution_time' ini option does not stop script execution for some reason
			'0s' means 'off'
			<value name="request_terminate_timeout">0s</value>
			The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow. log file
			'0s' means 'off'
			<value name="request_slowlog_timeout">0s</value>
			The log file for slow requests
			<value name="slowlog">logs/slow.log</value>
			Set open file desc rlimit
			<value name="rlimit_files">51200</value>
			Set max core size rlimit
			<value name="rlimit_core">0</value>
			Chroot to this directory at the start, absolute path
			<value name="chroot"></value>
			Chdir to this directory at the start, absolute path
			<value name="chdir"></value>
			Redirect workers' stdout and stderr into main error log.
			If not set, they will be redirected to /dev/null, according to FastCGI specs
			<value name="catch_workers_output">yes</value>
			How much requests each process should execute before respawn.
			Useful to work around memory leaks in 3rd party libraries.
			For endless request processing please specify 0
			Equivalent to PHP_FCGI_MAX_REQUESTS
			<value name="max_requests">10240</value>
			Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect. 
			Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)
			Makes sense only with AF_INET listening socket.
			<value name="allowed_clients">127.0.0.1</value>
			Pass environment variables like LD_LIBRARY_PATH
			All $VARIABLEs are taken from current environment
			<value name="environment">
				<value name="HOSTNAME">$HOSTNAME</value>
				<value name="PATH">/usr/local/bin:/usr/bin:/bin</value>
				<value name="TMP">/tmp</value>
				<value name="TMPDIR">/tmp</value>
				<value name="TEMP">/tmp</value>
				<value name="OSTYPE">$OSTYPE</value>
				<value name="MACHTYPE">$MACHTYPE</value>
				<value name="MALLOC_CHECK_">2</value>
			</value>
		</section>
	</workers>
</configuration>

4.

Nginx!!! перед тем как начать установку, сделаем изменения в файлах перед компиляцией.

cd /usr/local/src
tar zxvf nginx-0. 8.33.tar.gz
cd nginx-0.8.33

vi nginx-0.8.33/src/core/nginx.h
находим строки
#define NGINX_VERSION      "0.8.33"
#define NGINX_VER          "nginx/" NGINX_VERSION
меняем на чтото левое только текст - вставить свое название
#define NGINX_VERSION      "10.50.0"
#define NGINX_VER          "вставить свое название/" NGINX_VERSION

vi nginx-0.8.33/src/http/ngx_http_header_filter_module.c
находим строки
static char ngx_http_server_string[] = "Server: nginx" CRLF;
меняем на чтото левое только текст - вставить свое название
static char ngx_http_server_string[] = "Server: вставить свое название" CRLF;

vi nginx-0.8.33/src/http/ngx_http_special_response.c
находим строки
static u_char ngx_http_error_full_tail[] =
"<hr><center>" NGINX_VER "</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;
static u_char ngx_http_error_tail[] =
"<hr><center>nginx</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;
меняем на чтото левое только текст - вставить свое название
static u_char ngx_http_error_full_tail[] =
"<hr><center> "NGINX_VER" </center>" CRLF
"<hr><center>http://www. вставить свое название.com</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;
static u_char ngx_http_error_tail[] =
"<hr><center>вставить свое название</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;

Устанавливаем Nginx с настройками:

    ./configure \
     "--user=www" \
     "--group=www" \
     "--prefix=/usr/local/nginx/" \
     "--with-http_stub_status_module" \
     "--with-http_ssl_module" \
     
make
make install

Создаем нужные дириктории

mkdir -p /website/logs
chmod +w /website/logs
chown -R www:www /website/logs

Создаем новыий конфиг

rm -f /usr/local/webserver/nginx/conf/nginx.conf
vi /usr/local/webserver/nginx/conf/nginx.conf

вставляем конфиг

    user  www www;
worker_processes 8;
error_log /website/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx. pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}
http
{
  include       mime.types;
  default_type  application/octet-stream;
  #charset  gb2312;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;
 
  sendfile on;
  tcp_nopush     on;
 
  keepalive_timeout 60;
 
  tcp_nodelay on;
 
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
 
  gzip on;
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types  text/plain application/x-javascript text/css application/xml;
  gzip_vary on;
 
  #limit_zone  crawler  $binary_remote_addr  10m;
  server
  {
    listen       80;
    server_name  site. ru www.site.ru;
    index index.html index.htm index.php;
    root  /website/htdocs/www;
 
    #limit_conn   crawler  20;    
 
    location ~ .*\.(php|php5)?$
    {      
      #fastcgi_pass  unix:/tmp/php-cgi.sock;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
    }
 
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      expires      30d;
    }
 
    location ~ .*\.(js|css)?$
    {
      expires      1h;
    }    
 }
}

4.а. в папке /usr/local/webserver/nginx/conf/ создаем новый файл конфиг fcgi.conf

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

5.

Автостарт в файле /etc/rc.local добавим

ulimit -SHn 65535
/usr/local/webserver/php/bin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx

6. phpMyAdmin — ставим админку для базы и заодно проверим как работает сервак:

cd /usr/local/src
wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.3.3/phpMyAdmin-3.3.3-english.tar.gz/download
tar xzvf phpMyAdmin-3.3.3-english.tar.gz
mv phpMyAdmin-3.3.3-english /website/htdocs/www/phpmyadmin
cd /website/htdocs/www/phpmyadmin
mkdir config
chmod o+rw config
cp config.sample.inc.php config/config.inc.php
chmod o+w config/config.inc.php

переходим к настройке ваш сайт.ру/phpmyadmin/setup/

все настроили, установили. залогинились ваш сайт.ру/phpmyadmin

после заметаем следы

mv config/config.inc.php .
chmod 744 config.inc.php
rm -rf config

Вот так выглядит примерная но зато полная настройка сервера.

На ваше желание — настройте все конфиги и добавте и перекомпильте все как вам будет нужно.

Основная идея вам уже более-менее понятна.

Следующая публикация будет о том как сделать nginx.initd для быстрого start|stop|restart|force-reload управления самим Nginx

Спасибо. Удачи.

linux — Настройте RHEL/CentOS 5 для использования SUDO в командной строке и X получить подсветку синтаксиса или использовать редактор по вашему выбору).

Вокруг строк 83,86 вы должны увидеть две похожие строки (в vim вы можете запустить :set number для отображения номеров строк):

 83 # %wheel ALL=(ALL) ALL
84
85 ## То же самое без пароля
86 # %wheel ALL=(ALL) NOPASSWD: ALL
 

Разница в том, что строка №83 потребует от пользователя ввести свой пароль для аутентификации, а строка №86 позволит пользователю ввести sudo без повторного запроса пароля. Лучшие методы обеспечения безопасности утверждают, что № 83 более безопасен; однако в зависимости от вашей ситуации может подойти #86 (например, я обычно использую #86 при настройке сервера, а затем переключаюсь на #83).

Выйдите и сохраните этот файл.

Теперь нам нужно сообщить системе, каким пользователям разрешено повышать свои разрешения через судо . Это делается путем добавления их в группу wheel , то есть то, что %wheel указал в файле sudoers , который мы редактировали ранее. См. man sudoers для получения дополнительной информации об этом формате файла.

 $ usermod -a -G колесо erebusbat
 

Эта команда добавит пользователя erebusbat в группу wheel, в сочетании с нашим предыдущим изменением все они будут запускать любую команду от имени пользователя root:

 erebusbat@centos$ sudo whoami
корень
erebusbat@centos$
 

В CentOS/RHEL 5 и более ранних версиях аутентификация X обрабатывается набором программ, называемых consolehelper и userhelper . В основном происходит следующее: когда пользователь запускает программу (скажем, pirut ), она проверяет, есть ли файлы с именем pirut в папке /etc/security/console. apps/ , если мы посмотрим на один из этих файлов это выглядит так:

 USER=root
ПРОГРАММА=/usr/sbin/pirut
СЕССИЯ=истина
KEEP_ENV_VARS=http_proxy,ftp_proxy
 

Это говорит consolehelper / userhelper разрешить пользователю пройти аутентификацию и запустить программу от имени root. Если мы man userhelper , мы увидим, что мы можем добавить директиву UGROUPS= , чтобы, если пользователь был в этой группе, ему было разрешено аутентифицироваться как они сами, но запускать приложение от имени пользователя, указанного в USER= . директива. Таким образом, файл pirut должен выглядеть так:

 USER=root
UGROUP=колесо
ПРОГРАММА=/usr/sbin/pirut
СЕССИЯ=истина
KEEP_ENV_VARS=http_proxy,ftp_proxy
 

Как только мы вносим это изменение всякий раз, когда мы пытаемся запустить pirut как обычный пользователь (Установка и удаление программ из меню GNOME), произойдет одно из двух:

  1. Нам будет предложено ввести НАШ пароль и программа запустится как root .
  2. Нам будет предложено ввести пароль root , если текущий пользователь не входит в группу wheel .

Однако изменение всех этих файлов вручную может быть PIA, поэтому мы работаем с умом, а не усерднее: 9USER=root/USER=root\nUGROUPS=wheel/’

Команда sudo su - не нужна, если вы в настоящее время root . Команда не будет «дважды исправлять» какой-либо файл, поэтому она может быть изменена chron или настроена на запуск при запуске, чтобы убедиться, что ваши файлы в порядке. Обновления и установки могут перезаписывать их или создавать новые, не содержащие директивы UGROUPS= .

После того, как все настроено и протестировано, вы должны отключить пользователя root:

 $ sudo passwd -l root
 

Это строчная буква L, как в слове LOCK.

Затем вы должны установить или изменить PermitRootLogin no в файле /etc/ssh/sshd_config . Это полезно, даже если вы заблокируете корневую учетную запись на случай, если кто-нибудь включит ее в будущем. sudo su - все равно будет работать, даже если вы установите это, см. ниже, так что на самом деле нет причин не устанавливать его.

Если вы решите не блокировать учетную запись root, это не идеально, так как любой может войти в консоль text/X/GNOME как root и тогда происходят плохие вещи (консоль остается в системе или вы случайно удалили кучу файлов ОС [спросите меня, как я знаю], лучше всего заблокировать учетную запись.

Иногда, например, при установке программного обеспечения, это необходимо запускать многие команды как root и нежелательно иметь перед каждой префикс sudo . В этом случае у вас есть два варианта:

  1. Временно переключиться на учетную запись root : $ sudo su - Эта команда предоставит вам ту же командную оболочку, как если бы вы вошли в учетную запись как root. 0081
  2. Разблокировать учетную запись root: $ sudo passwd root Это позволит вам установить пароль и разблокировать учетную запись; однако это не временное , и вы должны не забыть заблокировать учетную запись пользователя после того, как закончите.

centos5 — Добавление корневого сертификата в CentOS 5

Задавать вопрос

спросил

Изменено
10 лет, 8 месяцев назад

Просмотрено
12 тысяч раз

Недавно одна из моих машин была помещена за прокси-сервер, что означает, что некоторые программы, которые у меня работали, больше не работают.

Когда я пытаюсь выполнить «openssl s_client -showcerts -connect remoteserver:remoteport», он выдает мне прекрасный «Проверить код возврата: 20 (невозможно получить сертификат локального эмитента)», я так понимаю, что промежуточный (прокси-сервер) ) сертификат не признается.

Если мое предположение верно, я считаю, что мне нужно установить корневой сертификат прокси-сервера, чтобы мои программы снова заработали.

Мне дали файл .cer, который я преобразовал в файл pem следующим образом:

 openssl x509 -inform der -in certificate.cer -out certificate.pem
 

Затем я получил хэш pem (как предлагается здесь https://stackoverflow.com/questions/12041512/openssl-unable-to-get-local-issuer-certificate-unless-cafile-is-explicitly -специфический):

 openssl x509 -issuer_hash -noout -в сертификате.pem
 

это дало мне строку (например: a8a87a6a).

Затем я пошел и скопировал файл pem, переименовав его как a8a87a6a в /etc/pki/tls/certs, однако я все еще получаю тот же «Проверьте код возврата: 20 (невозможно получить сертификат локального эмитента)» даже при работе с «- CApath /etc/pki/tls/certs/» .

Я также пытался переименовать файл, чтобы он имел расширения .pem .crt .cer, но безрезультатно.

Весьма расстроен этим, как я могу сделать, чтобы этот сертификат был признан законным и чтобы мои вещи снова работали?

  • centos5
  • openssl

В CentOS 5 доверенные сертификаты находятся в /etc/pki/tls/certs/ca-bundle.