Monday, June 14, 2021

IPTABLES, Firewall, Actual Firewall + Security Group - AWS

https://www.tecmint.com/fix-no-route-to-host-ssh-error-in-linux/


https://www.cyberciti.biz/faq/how-to-list-all-iptables-rules-in-linux/                            


sudo nmap -p 6900,25,22,8080,21000,7856,9084 10.79.197.70

sudo iptables -S


sudo nmap -p 6900,25,22,8080,21000,7856,9084 10.79.197.70

https://www.e2enetworks.com/help/knowledge-base/how-to-open-ports-on-iptables-in-a-linux-server/#step-1-list-the-current-iptables-rules


sudo iptables -D IN_public_allow -p tcp -m tcp --dport 7856 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT

sudo iptables -A IN_public_allow -p tcp -m tcp --dport 7856 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT


Saturday, June 5, 2021

Azure Pipelines, YAML Schema





https://faun.pub/reduce-your-build-time-using-caching-in-azure-pipelines-7a7bd0201cee

Resources
Trigger
Pipeline -> Stage(Implicit) -> Jobs -> Steps [Task, Script, Checkout]

jobs:
- job: Job_1
  displayName: Agent job 1   
  pool:
    vmImage: ubuntu-latest
  steps:
    -script: echo "Hello World"
pool:
  name: Default
  demands: SpecialSoftware # Check if SpecialSoftware capability exists
  
  
stages:
- stage: A
  jobs:
  - job: A1
  - job: A2
- stage: B
  jobs:
  - job: B1
  - job: B2  




stages:
- stage: A

# stage B runs if A fails
- stage: B
  condition: failed()

# stage C runs if B succeeds
- stage: C
  dependsOn:
  - A
  - B
  condition: succeeded('B')




If you choose to specify a pool at the stage level, then all jobs defined in that stage will use that pool unless otherwise specified at the job-level.
stages:
- stage: A
  pool: StageAPool
  jobs:
  - job: A1 # will run on "StageAPool" pool based on the pool defined on the stage
  - job: A2 # will run on "JobPool" pool
    pool: JobPool





jobs:
- job: Foo

  steps:
  - script: echo Hello!
    condition: always() # this step will always run, even if the pipeline is canceled

- job: Bar
  dependsOn: Foo
  condition: failed() # this job will only run if Foo fails





jobs:
- job: Debug
  steps:
  - script: echo hello from the Debug build
- job: Release
  dependsOn: Debug
  steps:
  - script: echo hello from the Release build


You can organize pipeline jobs into stages. Stages are the major divisions in a pipeline: "build this app", "run these tests", and "deploy to pre-production" are good examples of stages. They are logical boundaries in your pipeline where you can pause the pipeline and perform various checks.

Pipeline > Stages >Stage>Steps>Step

jobs:
- job: A
  steps:
  - bash: echo "A"

- job: B
  steps:
  - bash: echo "B"
  
  
  If you organize your pipeline into multiple stages, you use the stages keyword.

If you choose to specify a pool at the stage level, then all jobs defined in that stage will use that pool unless otherwise specified at the job-level
stages:
- stage: A
  jobs:
  - job: A1
  - job: A2

- stage: B
  jobs:
  - job: B1
  - job: B2
  
  When you define multiple stages in a pipeline, by default, they run sequentially in the order in which you define them in the YAML file. The exception to this is when you add dependencies. With dependencies, stages run in the order of the dependsOn requirements
  stages:
- stage: string
  dependsOn: string
  condition: string
  -----------------------------------------------------------
  You can organize your pipeline into jobs. Every pipeline has at least one job. A job is a series of steps that run sequentially as a unit. In other words, a job is the smallest unit of work that can be scheduled to run.
  
  In the simplest case, a pipeline has a single job. In that case, you do not have to explicitly use the job keyword
  
  jobs:
- job: myJob
  timeoutInMinutes: 10
  pool:
    vmImage: 'ubuntu-16.04'
  steps:
  - bash: echo "Hello world"
  
  
  /usr/lib/jvm/adoptopenjdk-11-hotspot-amd64


 # update-alternatives --config java
          update-alternatives --list java
          echo ls /etc/alternatives
          ls /etc/alternatives
  
  


Thursday, June 3, 2021

XARGS AWK CUT GREP

ls -l . | grep ^d | awk '{print $9}' | xargs rm -rf

ls -al | grep -E '^-.*ml'

ls -l | grep -E '^-.*ml' | awk '{print $9}' |xargs rm -f



https://www.thegeekstuff.com/2011/10/grep-or-and-not-operators/

https://stackoverflow.com/questions/16900945/bash-extract-string-from-text-file-with-space-delimiter/16901235#16901235

https://stackoverflow.com/questions/219402/what-linux-shell-command-returns-a-part-of-a-string

Linux Pending A-Z ::: Sudoers :: Login Shell : Non Login Shell :: Grep Regex :: Alias

sudo visudo

source /etc/sudoers


To put it very simple, it is “who where = (as_whom) what”.

https://medium.com/kernel-space/linux-fundamentals-a-to-z-of-a-sudoers-file-a5da99a30e7f

coraca ALL=ALL:ALL  /usr/bin/cat /etc/shadow



https://www.hostinger.in/tutorials/sudo-and-the-sudoers-file/

https://phpraxis.wordpress.com/2016/09/27/enable-sudo-without-password-in-ubuntudebian/


kk   ALL=(ALL)  NOPASSWD: ALL

user1 ALL=NOPASSWD: /bin/systemctl start vsts, /bin/systemctl stop vsts, /bin/systemctl restart vsts, /bin/systemctl status vsts



Using /etc/sudoers.d #

Instead of editing the sudoers file you can create a new file with the authorization rules in the /etc/sudoers.d directory.


https://www.garron.me/en/linux/visudo-command-sudoers-file-sudo-default-editor.html

https://www.linux.com/training-tutorials/configuring-linux-sudoers-file/

https://toroid.org/sudoers-syntax

https://medium.com/kernel-space/linux-fundamentals-a-to-z-of-a-sudoers-file-a5da99a30e7f

http://www.softpanorama.org/Access_control/Sudo/sudoer_file_examples.shtml

http://www.freekb.net/Article?id=269

https://www.hostinger.in/tutorials/sudo-and-the-sudoers-file/

https://www.tecmint.com/create-alias-in-linux/

https://linuxize.com/post/linux-xargs-command/

https://shapeshed.com/unix-xargs/

https://www.geeksforgeeks.org/alias-command-in-linux-with-examples/

https://www.techrepublic.com/article/linux-101-the-different-types-of-sudo-and-su/

https://www.blogger.com/u/1/blog/posts/2528866210673694202

https://unix.stackexchange.com/questions/384700/what-is-the-difference-between-su-username-and-sudo-su-username

https://unix.stackexchange.com/questions/38175/difference-between-login-shell-and-non-login-shell

https://linuxhint.com/list-only-files-not-directories/

https://medium.com/@rajsek/zsh-bash-startup-files-loading-order-bashrc-zshrc-etc-e30045652f2e

https://www3.ntu.edu.sg/home/ehchua/programming/howto/Regexe.html

https://regex101.com/

https://askubuntu.com/questions/815066/whats-the-difference-between-bashrc-and-etc-bash-bashrc 

Wednesday, June 2, 2021

Linux ENV Setings ---- /etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile

export PATH=$PATH:/usr/local/bin/nodeSetup/

Any Folder Path we put on PATH is scanned for Executables


~/.bash_profile
~/ .bashrc
~/.profile

/etc/sudoers
/etc/yum.conf
/etc/os-release
/etc/hosts
/etc/hosts.allow
/etc/fstab
/etc/shells

/etc/passwd
/etc/group
/etc/shadow

/etc/profile
etc/bashrc      [/etc/profile.d]

/etc/bashrc          # Functions and aliases go in /etc/bashrc
/etc/profile            # System wide environment and startup programs, for login setup + Environment stuff (It sources/executes shell in /etc/profile.d)
/etc/profile.d        # It's much better to create a custom.sh shell script in  /etc/profile.d/ to make custom changes to your environment 

~/.bash_profile    # User specific environment and startup programs    #PATH=$PATH:$HOME/.local/bin:$HOME/bin       #export PATH --- It sources(executes)  ~/.bashrc
~/.bashrc              #Get the aliases and functions                                              

-----------------------------------------------------------------------------
/etc/profile file is used to set system wide environmental variables on users shells. 
/etc/profile is the system wide version of .bash_profile.

/etc/bashrc for Red Hat and /etc/bash.bashrc in Ubuntu is the system wide version of .bashrc.

.bashrc file in your home directory. 
This file is meant for setting command aliases and functions used by bash shell users

.bash_profile or .profile - in  your home directory.
These files are used to set environmental items for a particular user's shell

The difference is simple, 
/etc/profile is executed only for interactive shells 
/etc/bashrc is executed for both interactive and non-interactive shells.
-------------------------------------------------------------------------------


For User specific Stuff, You can put aliases in ~/.bashrc and ~/.bash_profile sources it , but ENV Paths etc should be put in ~/.bash_profile

For Stuff relevant to all , You should put stuff in custom shell inside /etc/profile.d 

https://shreevatsa.files.wordpress.com/2008/03/bashstartupfiles1.png
https://bencane.com/2013/09/16/understanding-a-little-more-about-etcprofile-and-etcbashrc/

The importance of using a login shell is that any settings in /home/user/.bash_profile will get executed.






Linux A-Z Gyaan

 https://www.digitalocean.com/community/tutorials/angular-query-parameters

https://www.concretepage.com/angular-2/angular-2-4-child-routes-and-relative-navigation-example#:~:text=Child%20routes%20can%20have%20their,outlet%2C%20children%2C%20loadChildren%20etc.&text=Router%20supports%20relative%20path%20using%20ActivatedRoute%20.

https://appdividend.com/2019/12/16/angular-form-control-example/

https://malcoded.com/posts/angular-custom-directives/

https://www.redhat.com/sysadmin/alternatives-command

https://access.redhat.com/solutions/505983#:~:text=PS1%20is%20a%20primary%20prompt,the%20%2Fetc%2Fbashrc%20file.

https://unix.stackexchange.com/questions/1373/how-do-i-switch-from-an-unknown-shell-to-bash#:~:text=You%20type%20in%20bash%20.,by%20editing%20%2Fetc%2Fpasswd%20.

https://www.freecodecamp.org/news/linux-command-line-bash-tutorial/

https://itsfoss.com/apt-vs-apt-get-difference/

https://askubuntu.com/questions/1190717/when-to-run-sudo-apt-update-and-when-sudo-apt-update-sudo-apt-upgrade

https://www.freecodecamp.org/news/symlink-tutorial-in-linux-how-to-create-and-remove-a-symbolic-link/

https://www.tecmint.com/remove-package-with-dependencies-using-yum/amp/

https://phoenixnap.com/kb/centos-uninstall-remove-package

https://stackoverflow.com/questions/29964042/how-to-remove-old-version-of-java-and-install-new-version

https://www.thegeekdiary.com/how-to-work-with-multiple-java-versions-under-linux/

https://www.lifewire.com/alternatives-linux-command-4091710

https://linuxize.com/post/how-to-add-directory-to-path-in-linux/

https://kb.iu.edu/d/acec

https://linuxhint.com/update_alternatives_ubuntu/

https://www.redhat.com/sysadmin/alternatives-command

https://www.digitalocean.com/community/tutorials/ssh-essentials-working-with-ssh-servers-clients-and-keys

https://www.ssh.com/academy/ssh/host-key

https://superuser.com/questions/437330/how-do-you-add-a-certificate-authority-ca-to-ubuntu/719047#719047

https://www.google.com/search?q=pem+linux+full+form&client=ms-android-oppo&sxsrf=ALeKk027xsSkCVYclkcJoeq4bbZA0X4big%3A1622683432717&ei=KC-4YK6gK_OM4-EPzOWZmAQ&oq=pem++linux+full&gs_lcp=ChNtb2JpbGUtZ3dzLXdpei1zZXJwEAEYATIGCAAQFhAeMgUIIRCgATIFCCEQoAE6BAgjECc6BggAEAcQHjoICAAQCBANEB46BwghEAoQoAFQrghYoDZgxz5oAHAAeACAAYECiAG_F5IBBjAuMTAuNZgBAKABAcABAQ&sclient=mobile-gws-wiz-serp

https://www.tecmint.com/dpkg-command-examples/amp/

https://en.m.wikipedia.org/wiki/List_of_Linux_distributions

https://www.google.com/search?q=dnf+yum+difference&oq=dnf+yum&aqs=chrome.1.69i57j0l4.7585j0j4&client=ms-android-oppo&sourceid=chrome-mobile&ie=UTF-8

https://github.community/t/the-difference-between-forking-and-cloning-a-repository/10189

https://superuser.com/questions/740219/difference-between-apt-get-and-dpkg

https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/sec-managing_yum_repositories

https://danielmiessler.com/study/fedora_redhat_centos/

https://itsfoss.com/centos-stream-fiasco/

https://blog.centos.org/2020/12/future-is-centos-stream/

https://unix.stackexchange.com/questions/52707/difference-between-chmod-775-and-chmod-2755

https://www.peachpit.com/articles/article.aspx?p=659655&seqNum=3

https://stackoverflow.com/questions/635869/can-yum-tell-me-which-of-my-repositories-provide-a-particular-package

https://www.cyberciti.biz/tips/how-do-i-find-out-what-shell-im-using.html

https://www.peachpit.com/articles/article.aspx?p=659655&seqNum=4

https://www.linuxfromscratch.org/lfs/view/9.1/chapter06/procps-ng.html

https://dzone.com/articles/how-to-edit-a-yaml-azure-devops-pipeline

https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=example%2Cparameter-schema

https://learnxinyminutes.com/docs/yaml/

https://docs.microsoft.com/en-us/azure/devops/pipelines/customize-pipeline?view=azure-devops

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/ci-build-git?view=azure-devops&tabs=yaml

http://www.mattruma.com/create-a-single-build-release-pipeline-for-multiple-branches/


Azure - Pipeline - Add Approver for Stage

https://learn.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops&tabs=check-pass