Chủ Nhật, 28 tháng 5, 2017

[Linux] Đề cương ôn tập

Bài 1: 
Nhập vào tên một file và số thứ tự dòng muốn in nếu có trong file.
Bài làm
#! /bin/bash
read nameFile;
declare -i numRow;
declare -i a;
read numRow;
cat $nameFile;
a=`sudo cat $nameFile | wc -l`;
if [ "$a" -gt "$numRow" -o  "$a" -eq "$numRow" ]; then
        k=`sudo cat $nameFile | head -n $numRow | tail -n 1`;
        echo $k;
else
        echo "don't have row";
fi

Bài 2:
Nhập một số từ 1000 -> 5000. Kiểm tra số hợp lệ hay không. Nếu hợp lệ kiểm tra số đó là số nguyên tố hay hợp số
Bài làm

#! /bin/bash
read a
declare -i d;
j=0;
if [ "$a" -gt "1" -a "$a" -lt "50000" ]; then
        for ((i =2; i<$a;i++))
        do
                d=$a%$i;
                if [ "$d" -eq "0" ]; then
                         echo "La hop so";
                        j=1; break;
                fi

        done
        if [ "$j" -eq "0" ]; then
                echo "La so nguyen to";
        fi
else
        echo "Khong nam trong khoang cho phep"
fi



Bài 3: Nhập một số a, tính số fibonasi lớn nhất nhưng nhỏ hơn a.
Bài làm
#! /bin/bash
declare -i a;
declare -i b;
b=0;
i=1;
j=1;
read a;
while [ "$b" -lt "$a" ]
do
        b=$i+$j;
        j=$i;
        i=$b;
done
echo $j;
                                                   
Bài 4: Tạo file lab06.sh có chức năng sau: Nhập một xâu ký tự từ bàn phím, đếm và in ra màn hình số ký tự hoa, số ký tự thường trong xâu.


Bài 5:
 Trên server của bạn, cho tệp /data/usr.txt chứa danh sách người dùng có yêu cầu được cấp tài khoản trên hệ thống, mỗi người dùng trên một dòng với thông tin duy nhất là tên tài khoản cần cấp. Ví dụ tệp ur.txt có nội dung như sau:
hoangtt
mainn
binhqq
Lưu ý, nếu chưa có tệp /data/usr.txt hoặc tệp rỗng thì hãy tạo tệp và đưa nội dung mẫu ở trên vào tệp để bạn có thể hoàn thành câu này.
Viết kịch bản shell /scripts/crtusr.sh đọc danh sách người dùng từ tệp /data/usr.txt, và với mỗi người dùng,
- (2 điểm) kiểm tra người dùng đã tồn tại trong hệ thống hay chưa, nếu chưa thì tạo người dùng với tên tài khoản tương ứng và mật khẩu là “Kiemtracuoiky2016”.
- (1 điểm) kiểm tra đã tồn tại thư mục /data/[user] hay chưa (thay [user] bằng tên tài khoản tương ứng), nếu chưa thì tạo thư mục này
- (1 điểm) chuyển quyền sở hữu thư mục /data/[user] cho người dùng [user]
- (1 điểm) cấp quyền trên thư mục /data/[user] sao cho người dùng [user] có đủ quyền (wrx), mọi người dùng khác [user] đều không có quyền gì trên /data/[user]

Bài làm

#! /bin/bash
while read p; do
        temp=`sudo grep $p /etc/passwd`
        if [ ! -z "$temp" ]; then
                sudo userdel $p
                sudo rm -r /data/$p
                sudo useradd $p;
                sudo mkdir /data/$p
                sudo chown $p /data/$p
                sudo chmod 770 /data/$p
        else
                echo "temp khong bi rong. User da ton tai"
        fi
done </data/usr.txt


Chú ý
From man test:
-z STRING
the length of STRING is zero
-n STRING
the length of STRING is nonzero

Samples:

$ [ ! -z "$var" ] && echo "yes"
$

$ var=""
$ [ ! -z "$var" ] && echo "yes"
$

$ var="a"
$ [ ! -z "$var" ] && echo "yes"
yes

$ var="a"
$ [ -n "$var" ] && echo "yes"
yes


groupadd ten_group
gpasswd -a ten_user ten_group
groupdel ten_group

Bài 6:
Cài đặt ssh

Cài đặt OpenSSH-client
sudo apt-install openssh-client
Cài đặt OpenSSH-server
sudo apt-install openssh-server


Chỉnh các thông số trong file /etc/ssh/sshd_config
PermitRootLogin yes
-          Không chấp nhận (no) hoặc chấp nhận (yes) tài khoản có mật khẩu rỗng:
PermitEmptyPasswords no
-          Yêu cầu phải nhập mật khẩu khi đăng nhập:
PasswordAuthentication yes

sudo systemctl restart sshd.service

Bài 7:
Cài đặt giao thức FTP 

sudo apt install vsftpd

Chỉnh sửa file /etc/vsftpd/vsftpd.config

Chế độ vô danh
Để  sử dụng chế độ vô danh, chỉnh sửa tệp /etc/vsftpd.conf bằng thay đổi sau:
anonymous_enable=Yes
Ở chế độ vô danh, người dùng ‘ftp’ được sử dụng. Trong quá trình cài đặt, người dùng ‘ftp’ được tạo, cùng với thư mục home cho người dùng này là /srv/ftp. Nếu muốn thay đổi thư mục home cho ftp, ví dụ thành /srv/files/ftp, hãy chạy các  lệnh sau:
sudo mkdir /srv/files/ftp
sudo usermod -d /srv/files/ftp ftp
Nếu muốn cho người dùng vô danh (‘ftp’) được upload tệp, đặt tham số sau:
anon_upload_enable=YES
Restart FTP
sudo service vsftpd restart