重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
在linux下,修改普通用戶成root用戶的方法有是有,但這是屬于一種歪招。
創新互聯自2013年創立以來,先為中衛等服務建站,中衛等地企業,進行企業商務咨詢服務。為中衛企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
編輯 /etc/shadow文件,用root用戶打開,找到其中要修改的用戶,將用戶的UID修改成0,重啟,就可以了,然后那一個用戶就有了和root一樣的權限功能。
還有一種比較正經的方法,在debian/ubuntu下,如果該普通用戶被在sudoers文件里面允許使用sudo來獲取臨時root的話,那么用戶是可以通過 sudo -i 輸入密碼的方式來臨時變更為root的。
Linux本身就有一個root用戶的,權限相當于windows下的administrator(管理員),需要為該賬戶設置密碼的話(或者修改密碼的話)你可以使用該賬戶登陸系統后,使用passwd命令修改密碼(輸入兩遍新密碼即可)然后就可以修改了,而且,阿里云的控制臺提供重置密碼功能,忘了登錄密碼可以到網頁重置一下,重置完通過控制臺重啟就可以了。
如果你需要添加新的普通用戶的話,你可以使用useradd (用戶名) 的方式添加,然后使用passwd (用戶名) 的方式為該用戶設置密碼(需要在root下面),還需要注意的一點是,如果是使用的ubuntu發行版的話,那么你需要在 /etc/sudoers下面給該普通賬戶設置一個給它臨時root的機會。(不然怎么裝軟件包是吧)
首次登錄云服務器,要先進行用戶設置。
用戶設置
首先用passwd命令修改超級管理員root密碼。
1
$ passwd
根據提示連續輸入兩次密碼,很簡單吧。
接著,要新建一個普通的管理賬號并設置密碼,用于日常的系統管理。
1
2
$ useradd user1
$ passwd user1
將用戶添加進管理組,以便于統一管理管理員的權限。
1
$ usermod -a -G wheel user1
設置新用戶的sudo權限。
1
$ visudo
執行visudo命令實際上編輯的是/etc/sudoers文件。 找到 root ALL=(ALL:ALL) ALL 這行,并下面添加一行
1
user1 ALL=(ALL:ALL) ALL
保存退出,以后就可用用sudo命令執行管理操作了。
修改主機名
每臺服務器都有自己的名字,一般web服務器會用網站的域名來做主機名。 [用戶名@主機名 ~]$
1
2
$ hostname ""
$ vi /etc/sysconfig/network
HOSTNAME=
保存,并退出編輯,下次等登入服務器就能看到修改的主機名字了。
SSH配置
將ssh的端口22改掉,另外,禁止root通過ssh登錄服務器,并允許新建的普通管理員登錄。
1
$ vi /etc/ssh/sshd_config
找到 # Port 22 ,去掉#并將22修改為1025到65536 之間的沒被用到的端口號。 找到下面一行,并去掉注釋符。
1
# PermitRootLogin yes
在配置文件里添加
1
AllowUsers user1
保存后,退出文件編輯。 重啟sshd
1
$ service sshd restart
下次登錄,就要用新設定的端口號登錄了。
1
$ ssh user1@ip -p port
掛載數據盤
為數據盤建立交換分區和普通分區,并掛載到系統。 首先查看查看數據盤
1
$ fdisk -l
確認數據盤為 /dev/xvdb 接著,對數據盤進行分區操作,
1
$ fdisk -S 56 /dev/xvdb
輸入m可以查看幫助。 這里直接鍵入n新建第一個擴展分區,接著輸入p建立立基本分區,輸入要建立的分區號1,起始簇保持默認,結束簇的位置輸入 +2G (一般擴展分區的大小為內存的兩倍)。 然后,重復上面的步驟,將剩下的分為數據盤,注意第二個分區的分區號為2。
格式化分區
1
2
$ mkswap /dev/xvdb1
$ mkfs.ext4 /dev/xvdb2
啟用swap分區
1
$ swapon /dev/xvdb1
將數據盤的第二個分區,掛載到新建的 /data 目錄。
1
$ mkdir /data
修改fstab文件,保證重啟系統后自動掛載。
1
$ vi /etc/fstab
添加
1
2
/dev/xvdb1 swap swap defaults 0 0
/dev/xvdb2 /data ext4 defaults 0 0
保存文件,并退出編輯,下次啟動系統就能自動掛載數據盤了。
執行掛載命令,可以立即看到掛載的硬盤。
1
$ mount -a
軟件安裝 Nginx Mongo Node
我習慣于多個node進程共享80端口,用nginx反向代理到不同的node服務上去。 安裝nginx。 新建yum倉庫配置文件。
1
$ vi /etc/yum.repos.d/nginx.repo
內容如下:
1
2
3
4
5
[nginx]
name=nginx repo
baseurl=
gpgcheck=0
enabled=1
保存文件,并退出編輯。
執行.
1
$ yum install nginx
安裝mongodb
1
$ vi /etc/yum.repos.d/mongodb.repo
文件內容
1
2
3
4
5
[mongodb]
name=MongoDB Repository
baseurl=
gpgcheck=0
enabled=1
保存文件,并退出編輯。
執行
1
$ yum install mongodb-org
安裝Node和NPM
1
$ sudo yum install nodejs npm
至此,服務器環境就搭建好了。
1. 操作系統環境、安裝包準備
宿主機:Max OSX 10.10.5
虛擬機:Parallel Desktop 10.1.1
虛擬機操作系統:CentOS-7-x86_64-DVD-1511.iso
Oracle:linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
JDK:jdk1.8.0_77.zip
2. 安裝CentOS7虛擬機
2.1 新建虛擬機
CPU:2核
內存:4G
硬盤:60G,擴展磁盤
2.2 安裝配置
安裝語言:中文
軟件選擇: 帶GUI的服務器
網絡和主機名:打開虛擬機網絡連接
安裝位置:使用虛擬機自動分區方案
設置root密碼:如root
添加用戶賬戶和密碼:如centos/centos
2.3 賬戶配置
使用centos賬戶登錄后,打開終端,切換到root賬戶
su root
root
預先為centos、oracle賬戶添加免密碼sudo權限
echo "centos ALL=(ALL) NOPASSWD:ALL" /etc/sudoers
echo "oracle ALL=(ALL) NOPASSWD:ALL" /etc/sudoers
允許賬戶使用弱密碼
sed 's/^password requisite.*/password requisite pam_cracklib.so try_first_pass retry=3 type=/g' -i /etc/pam.d/system-auth
3. 安裝Oracle11g
3.1 設置內核版本
echo redhat-7 /etc/redhat-release
3.2 安裝依賴包
yum install -y binutils compat-gcc* compat-glibc* compat-libcap1 compat-libstd* compat-libstdc++-33 compat-libstdc++-33.i686 compat-libstdc++-33*.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-devel.i686 glibc-devel*.i686 glibc-headers glibc.i686 glibc*.i686 ksh libaio libaio-devel libaio-devel.i686 libaio-devel*.i686 libaio.i686 libaio*.i686 libgcc libgcc.i686 libgcc*.i686 libstdc++ libstdc++-devel libstdc++-devel*.i686 libstdc++.i686 libstdc++*.i686 libXp make numactl sysstat unixODBC unixODBC-devel unixODBC-devel*.i686 unixODBC*.i686
3.3 創建oracle用戶及用戶組
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
oracle
3.4 設置內核參數
echo /etc/sysctl.conf EOM
fs.aio-max-nr = 1048576
fs.file-ax = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
EOM
sysctl -p # 立即生效內核參數
3.5 設置oracle賬戶環境變量
echo /home/oracle/.bashrc EOM
JAVA_HOME=/usr/local/jdk1.8.0_77/ # JDK home目錄
ORACLE_BASE=/opt/oracle # oracle安裝目錄
ORACLE_HOME=$ORACLE_BASE/11g # oracle home目錄
ORACLE_SID=orcl # oracle實例名
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$JAVA_HOME/bin:$PATH:$ORACLE_HOME/bin:$HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH
EOM
3.6 設置PAM資源限制
echo /etc/security/limits.conf EOM
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
EOM
3.7 關閉SELinux
sed 's/SELINUX=.*/SELINUX=disabled/g' -i /etc/selinux/config
setenforce 0 # 立即生效
3.8 創建安裝目錄
mkdir -p /opt/oracle
chown oracle:oinstall /opt/oracle
chmod 755 /opt/oracle
mkdir -p /opt/oraInventory
chown oracle:oinstall /opt/oraInventory
chmod 755 /opt/oraInventory
3.9 準備安裝包
通過移動設備將linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip和jdk1.8.0_77.zip拷貝到桌面,解壓
mkdir -p /usr/local/jdk1.8.0_77/
tar xf jdk1.8.0_77.zip -C /usr/local/jdk1.8.0_77/ # 解壓安裝安裝JDK
tar xf linux.x64_11gR2_database_1of2.zip -C /home/oracle
tar xf linux.x64_11gR2_database_2of2.zip -C /home/oracle
chmod -R 700 /home/oracle/database # 只允許oracle賬戶訪問
chown -R oracle:oinstall /home/oracle/database
3.10 使用oracle賬戶啟動安裝
su oracle -c 'export LANG=C /home/oracle/database/runInstaller'
3.11 安裝錯誤解決
(1)啟動安裝時報錯java.lang.NoClassDefFoundError
Exception in thread "main" java.lang.NoClassDefFoundError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at java.awt.Toolkit$2.run(Toolkit.java:821)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:804)
at com.jgoodies.looks.LookUtils.isLowResolution(Unknown Source)
at com.jgoodies.looks.LookUtils.clinit(Unknown Source)
at com.jgoodies.looks.plastic.PlasticLookAndFeel.clinit(PlasticLookAndFeel.java:122)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at javax.swing.SwingUtilities.loadSystemClass(SwingUtilities.java:1783)
at javax.swing.UIManager.setLookAndFeel(UIManager.java:480)
at oracle.install點抗 mons.util.Application.startup(Application.java:758)
at oracle.install點抗 mons.flow.FlowApplication.startup(FlowApplication.java:164)
at oracle.install點抗 mons.flow.FlowApplication.startup(FlowApplication.java:181)
at oracle.install點抗 mons.base.driver點抗 mon.Installer.startup(Installer.java:265)
at oracle.install.ivw.db.driver.DBInstaller.startup(DBInstaller.java:114)
at oracle.install.ivw.db.driver.DBInstaller.main(DBInstaller.java:132)
解決辦法:
標準化圖形安裝配置
sudo yum install -y xorg-x11-utils xorg-x11-apps
sudo xhosts + # 對所有賬戶開放XServer
檢查設置是否生效
xclock
[Ctrl+C]
(2)鏈接錯誤/usr/bin/ld: crt1.o: No such file: No such file or directory
Error in invoking target ‘install’ of makefile ‘/opt/oracle/11g/ctx/lib/ins_ctx.mk’. See ‘/opt/oraInventory/logs/installActions2016-08-07_02-58-49AM.log’ for details.
查看安裝日志/opt/oraInventory/logs/installActions2016-08-07_02-58-49AM.log
INFO: /usr/bin/ld: crt1.o: No such file: No such file or directory
INFO: collect2: ld ?? 1
INFO: make: *** [ctxhx] ?? 1
INFO: End output from spawned process.
解決辦法:
安裝glibc-devel的32位包
yumdownloader glibc-devel
rpm -ivh glibc-devel-2.17-106.el7_2.8.i686.rpm
rm -f glibc-devel-2.17-*.rpm
重試
(3)鏈接錯誤/lib64/libstdc++.so.5: undefined reference to memcpy@GLIBC_2.14
Error in invoking target ‘install’ of makefile ‘/opt/oracle/11g/ctx/lib/ins_ctx.mk’. See ‘/opt/oraInventory/logs/installActions2016-08-07_02-58-49AM.log’ for details.
查看安裝日志/opt/oraInventory/logs/installActions2016-08-07_02-58-49AM.log
INFO: /lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'
collect2: error: ld returned 1 exit status
INFO: make: *** [ctxhx] Error 1
INFO: End output from spawned process.
解決辦法:
if [[ ! -f /usr/lib64/libc.a ]]; then yum -y install glibc-static; fi
sed 's/.*\$(LINK_CTXHX) \$(CTXHXOBJ) \$(INSO_LINK)$/-static \/usr\/lib64\/libc.a \$(LINK_CTXHX) \$(CTXHXOBJ) \$(INSO_LINK)/g' -i /opt/oracle/11g/ctx/lib/ins_ctx.mk
重試
(4)鏈接錯誤ins_emagent.mk 'agent nmhs'
Error in invoking target 'agent nmhs' of makefile '/opt/oracle/11g/sysman/lib/ins_emagent.mk'
解決辦法:
sed 's/$(MK_EMAGENT_NMECTL)$/\$(MK_EMAGENT_NMECTL) -lnnz11/g' -i /opt/oracle/11g/sysman/lib/ins_emagent.mk
重試
(5)netca無法啟動
/u01/Oracle/bin/netca: line 178: 11819 Aborted $JRE $JRE_OPTIONS -classpath $CLASSPATH oracle點虐 .ca.NetCA $*
解決辦法:
cat /etc/sysconfig/network EOM
NETWORKING=yes
HOSTNAME=hotDB11g
GATEWAY=192.168.1.1
EOM
echo '127.0.0.1 hotDB11g' /etc/hosts
hostname hotDB11g
4. 測試
啟動服務
su - oracle -c 'lsnrctl start'
連接查詢所有數據庫
su - oracle -c 'sqlplus / as sysdba'
SQL statup
SQL select name from v$database;